home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: Tape Archive
(archive/tar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Tape Archive (archive/tar)
| magic
| Supported |
100%
| file
| POSIX tar archive (GNU)
| default
| |
99%
| file
| POSIX tar archive (GNU), file Ascii2Libr/Ascii2Libr.cc, mode 100644 , uid 12005 , gid 144 , size 15670 , seconds 5743564440, user heller, group users
| default
| |
98%
| file
| data
| default
| |
62%
| TrID
| TAR - Tape ARchive (GNU)
| default
| |
37%
| TrID
| TAR - Tape ARchive (file)
| default
| |
100%
| siegfried
| x-fmt/265 Tape Archive Format
| default
| |
100%
| lsar
| Tar
| default
| |
100%
| gt2
| TAR Archiv gefunden (Auflistung ist deaktiviert)
| default
| |
100%
| disktype
| GNU tar archive
| default
| |
100%
| detectItEasy
| Archive: tar
| default
| |
100%
| binwalkID
| POSIX tar archive (GNU), owner user name: "br/Ascii2Libr.cc"
| default
| |
100%
| xdgMime
| application/x-tar
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 41 73 63 69 69 32 4c 69 | 62 72 2f 41 73 63 69 69 |Ascii2Li|br/Ascii|
|00000010| 32 4c 69 62 72 2e 63 63 | 00 00 00 00 00 00 00 00 |2Libr.cc|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| 00 00 00 00 31 30 30 36 | 34 34 20 00 20 31 32 30 |....1006|44 . 120|
|00000070| 30 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |05 . 1|44 . |
|00000080| 20 20 31 35 36 37 30 20 | 20 35 37 34 33 35 36 34 | 15670 | 5743564|
|00000090| 34 34 30 20 20 31 34 32 | 30 35 00 20 30 00 00 00 |440 142|05. 0...|
|000000a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000000f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000100| 00 75 73 74 61 72 20 20 | 00 68 65 6c 6c 65 72 00 |.ustar |.heller.|
|00000110| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000120| 00 00 00 00 00 00 00 00 | 00 75 73 65 72 73 00 00 |........|.users..|
|00000130| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000140| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000180| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000190| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000001f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000200| 2f 2a 20 2d 2a 2d 20 4d | 6f 64 65 3a 20 43 20 2d |/* -*- M|ode: C -|
|00000210| 2a 2d 20 2a 2f 0a 2f 2a | 20 41 73 63 69 69 32 4c |*- */./*| Ascii2L|
|00000220| 69 62 72 2e 63 63 20 2d | 20 52 65 61 64 20 69 6e |ibr.cc -| Read in|
|00000230| 20 61 6e 20 41 53 43 49 | 49 20 74 65 78 74 20 66 | an ASCI|I text f|
|00000240| 69 6c 65 20 72 65 70 72 | 65 73 65 6e 74 69 6e 67 |ile repr|esenting|
|00000250| 20 61 20 6c 69 62 72 61 | 72 79 0a 20 2a 09 09 20 | a libra|ry. *.. |
|00000260| 20 20 69 6e 74 6f 20 61 | 20 6c 69 62 72 20 66 69 | into a| libr fi|
|00000270| 6c 65 0a 20 2a 20 43 72 | 65 61 74 65 64 20 62 79 |le. * Cr|eated by|
|00000280| 20 52 6f 62 65 72 74 20 | 48 65 6c 6c 65 72 20 6f | Robert |Heller o|
|00000290| 6e 20 4d 6f 6e 20 44 65 | 63 20 20 39 20 31 39 3a |n Mon De|c 9 19:|
|000002a0| 30 34 3a 34 35 20 31 39 | 39 31 0a 20 2a 0a 20 2a |04:45 19|91. *. *|
|000002b0| 20 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | -------|--------|
|000002c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002f0| 2d 2d 2d 0a 20 2a 20 48 | 6f 6d 65 20 4c 69 62 61 |---. * H|ome Liba|
|00000300| 72 69 61 6e 20 62 79 20 | 44 65 65 70 77 6f 6f 64 |rian by |Deepwood|
|00000310| 73 20 53 6f 66 74 77 61 | 72 65 0a 20 2a 20 50 72 |s Softwa|re. * Pr|
|00000320| 6f 67 61 6d 20 74 6f 20 | 72 65 61 64 20 69 6e 20 |ogam to |read in |
|00000330| 61 6e 20 41 73 63 69 69 | 20 74 65 78 74 20 66 69 |an Ascii| text fi|
|00000340| 6c 65 20 64 65 73 63 72 | 69 62 69 6e 67 20 61 20 |le descr|ibing a |
|00000350| 6c 69 62 72 61 72 79 20 | 69 6e 74 6f 20 61 0a 20 |library |into a. |
|00000360| 2a 20 4c 69 62 72 61 72 | 79 20 43 61 72 64 20 43 |* Librar|y Card C|
|00000370| 61 74 61 6c 6f 67 20 66 | 69 6c 65 2e 0a 20 2a 20 |atalog f|ile.. * |
|00000380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003c0| 2d 2d 0a 20 2a 20 4d 6f | 64 69 66 69 63 61 74 69 |--. * Mo|dificati|
|000003d0| 6f 6e 20 48 69 73 74 6f | 72 79 3a 0a 20 2a 20 2d |on Histo|ry:. * -|
|000003e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000420| 2d 0a 20 2a 20 43 6f 6e | 74 65 6e 74 73 3a 0a 20 |-. * Con|tents:. |
|00000430| 2a 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |* ------|--------|
|00000440| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000470| 2d 2d 2d 2d 0a 20 2a 20 | 0a 20 2a 20 0a 20 2a 20 |----. * |. * . * |
|00000480| 43 6f 70 79 72 69 67 68 | 74 20 28 63 29 20 31 39 |Copyrigh|t (c) 19|
|00000490| 39 31 2c 31 39 39 32 20 | 62 79 20 52 6f 62 65 72 |91,1992 |by Rober|
|000004a0| 74 20 68 65 6c 6c 65 72 | 20 28 44 2f 42 2f 41 20 |t heller| (D/B/A |
|000004b0| 44 65 65 70 77 6f 6f 64 | 73 20 53 6f 66 74 77 61 |Deepwood|s Softwa|
|000004c0| 72 65 29 0a 20 2a 20 20 | 20 20 20 20 20 20 41 6c |re). * | Al|
|000004d0| 6c 20 52 69 67 68 74 73 | 20 52 65 73 65 72 76 65 |l Rights| Reserve|
|000004e0| 64 0a 20 2a 20 0a 20 2a | 2f 0a 0a 23 69 6e 63 6c |d. * . *|/..#incl|
|000004f0| 75 64 65 20 3c 73 74 72 | 65 61 6d 2e 68 3e 0a 23 |ude <str|eam.h>.#|
|00000500| 69 6e 63 6c 75 64 65 20 | 3c 76 42 54 72 65 65 2e |include |<vBTree.|
|00000510| 68 3e 0a 23 69 6e 63 6c | 75 64 65 20 3c 63 74 79 |h>.#incl|ude <cty|
|00000520| 70 65 2e 68 3e 0a 23 69 | 66 64 65 66 20 4d 45 53 |pe.h>.#i|fdef MES|
|00000530| 53 59 44 4f 53 0a 23 69 | 6e 63 6c 75 64 65 20 3c |SYDOS.#i|nclude <|
|00000540| 43 61 72 64 52 65 63 2e | 68 3e 0a 23 69 6e 63 6c |CardRec.|h>.#incl|
|00000550| 75 64 65 20 3c 4c 69 73 | 74 52 65 63 2e 68 3e 0a |ude <Lis|tRec.h>.|
|00000560| 23 65 6c 73 65 0a 23 69 | 6e 63 6c 75 64 65 20 3c |#else.#i|nclude <|
|00000570| 43 61 72 64 52 65 63 6f | 72 64 2e 68 3e 0a 23 69 |CardReco|rd.h>.#i|
|00000580| 6e 63 6c 75 64 65 20 3c | 4c 69 73 74 52 65 63 6f |nclude <|ListReco|
|00000590| 72 64 2e 68 3e 0a 23 65 | 6e 64 69 66 0a 23 64 65 |rd.h>.#e|ndif.#de|
|000005a0| 66 69 6e 65 20 56 45 52 | 53 49 4f 4e 20 22 56 31 |fine VER|SION "V1|
|000005b0| 2e 30 42 65 74 61 22 0a | 23 69 66 64 65 66 20 4d |.0Beta".|#ifdef M|
|000005c0| 45 53 53 59 44 4f 53 0a | 23 69 6e 63 6c 75 64 65 |ESSYDOS.|#include|
|000005d0| 20 22 41 73 63 32 4c 69 | 62 72 2e 68 22 0a 23 65 | "Asc2Li|br.h".#e|
|000005e0| 6c 73 65 0a 23 69 6e 63 | 6c 75 64 65 20 22 41 73 |lse.#inc|lude "As|
|000005f0| 63 69 69 32 4c 69 62 72 | 2e 68 22 0a 23 65 6e 64 |cii2Libr|.h".#end|
|00000600| 69 66 0a 0a 63 6f 6e 73 | 74 20 69 6e 69 74 62 75 |if..cons|t initbu|
|00000610| 66 66 73 69 7a 65 20 3d | 20 32 30 34 38 3b 0a 63 |ffsize =| 2048;.c|
|00000620| 6f 6e 73 74 20 62 75 66 | 66 65 72 67 72 6f 77 74 |onst buf|fergrowt|
|00000630| 68 20 3d 20 32 30 34 38 | 3b 0a 0a 63 68 61 72 2a |h = 2048|;..char*|
|00000640| 20 52 65 61 64 51 75 6f | 74 65 64 53 74 72 69 6e | ReadQuo|tedStrin|
|00000650| 67 28 69 73 74 72 65 61 | 6d 26 20 69 6e 29 0a 7b |g(istrea|m& in).{|
|00000660| 0a 09 63 68 61 72 2a 20 | 6f 75 74 62 75 66 66 65 |..char* |outbuffe|
|00000670| 72 3b 0a 09 63 68 61 72 | 2a 20 6e 65 77 62 75 66 |r;..char|* newbuf|
|00000680| 66 65 72 3b 0a 09 63 68 | 61 72 2a 20 70 3b 0a 09 |fer;..ch|ar* p;..|
|00000690| 63 68 61 72 20 20 63 68 | 3b 0a 09 69 6e 74 20 20 |char ch|;..int |
|000006a0| 20 62 75 66 66 73 69 7a | 65 2c 20 63 68 61 72 73 | buffsiz|e, chars|
|000006b0| 6c 65 66 74 2c 20 63 68 | 69 6e 64 65 78 3b 0a 0a |left, ch|index;..|
|000006c0| 09 2f 2f 63 65 72 72 20 | 3c 3c 20 22 2a 2a 2a 20 |.//cerr |<< "*** |
|000006d0| 45 6e 74 65 72 69 6e 67 | 20 52 65 61 64 51 75 6f |Entering| ReadQuo|
|000006e0| 74 65 64 53 74 72 69 6e | 67 5c 6e 22 3b 0a 09 64 |tedStrin|g\n";..d|
|000006f0| 6f 20 7b 0a 09 09 69 6e | 2e 67 65 74 28 63 68 29 |o {...in|.get(ch)|
|00000700| 3b 0a 09 09 2f 2f 63 65 | 72 72 20 3c 3c 20 22 2a |;...//ce|rr << "*|
|00000710| 2a 2a 20 53 6b 69 70 69 | 6e 67 20 27 22 20 3c 3c |** Skipi|ng '" <<|
|00000720| 20 63 68 20 3c 3c 20 22 | 27 5c 6e 22 3b 0a 09 7d | ch << "|'\n";..}|
|00000730| 20 77 68 69 6c 65 20 28 | 63 68 20 21 3d 20 27 22 | while (|ch != '"|
|00000740| 27 29 3b 0a 09 6f 75 74 | 62 75 66 66 65 72 20 3d |');..out|buffer =|
|00000750| 20 6e 65 77 20 63 68 61 | 72 5b 69 6e 69 74 62 75 | new cha|r[initbu|
|00000760| 66 66 73 69 7a 65 5d 3b | 0a 09 62 75 66 66 73 69 |ffsize];|..buffsi|
|00000770| 7a 65 20 3d 20 69 6e 69 | 74 62 75 66 66 73 69 7a |ze = ini|tbuffsiz|
|00000780| 65 3b 0a 09 63 68 61 72 | 73 6c 65 66 74 20 3d 20 |e;..char|sleft = |
|00000790| 69 6e 69 74 62 75 66 66 | 73 69 7a 65 3b 0a 09 63 |initbuff|size;..c|
|000007a0| 68 69 6e 64 65 78 20 3d | 20 30 3b 0a 09 70 20 3d |hindex =| 0;..p =|
|000007b0| 20 6f 75 74 62 75 66 66 | 65 72 3b 0a 09 77 68 69 | outbuff|er;..whi|
|000007c0| 6c 65 20 28 74 72 75 65 | 29 20 7b 0a 09 09 69 6e |le (true|) {...in|
|000007d0| 2e 67 65 74 28 63 68 29 | 3b 0a 09 09 69 66 20 28 |.get(ch)|;...if (|
|000007e0| 63 68 20 3d 3d 20 27 22 | 27 29 20 62 72 65 61 6b |ch == '"|') break|
|000007f0| 3b 0a 09 09 65 6c 73 65 | 20 69 66 20 28 63 68 20 |;...else| if (ch |
|00000800| 3d 3d 20 27 5c 5c 27 29 | 20 7b 0a 09 09 09 69 6e |== '\\')| {....in|
|00000810| 20 3e 3e 20 63 68 3b 0a | 09 09 09 2f 2f 63 65 72 | >> ch;.|...//cer|
|00000820| 72 20 3c 3c 20 22 2a 2a | 2a 20 49 6e 73 65 72 74 |r << "**|* Insert|
|00000830| 69 6e 67 20 27 22 20 3c | 3c 20 63 68 20 3c 3c 20 |ing '" <|< ch << |
|00000840| 22 27 20 28 77 61 73 20 | 65 73 63 61 70 65 64 29 |"' (was |escaped)|
|00000850| 5c 6e 22 3b 0a 09 09 09 | 2a 70 2b 2b 20 3d 20 63 |\n";....|*p++ = c|
|00000860| 68 3b 0a 09 09 09 63 68 | 61 72 73 6c 65 66 74 2d |h;....ch|arsleft-|
|00000870| 2d 3b 0a 09 09 09 63 68 | 69 6e 64 65 78 2b 2b 3b |-;....ch|index++;|
|00000880| 0a 09 09 7d 20 65 6c 73 | 65 20 7b 0a 09 09 09 2f |...} els|e {..../|
|00000890| 2f 63 65 72 72 20 3c 3c | 20 22 2a 2a 2a 20 49 6e |/cerr <<| "*** In|
|000008a0| 73 65 72 74 69 6e 67 20 | 27 22 20 3c 3c 20 63 68 |serting |'" << ch|
|000008b0| 20 3c 3c 20 22 27 5c 6e | 22 3b 0a 09 09 09 2a 70 | << "'\n|";....*p|
|000008c0| 2b 2b 20 3d 20 63 68 3b | 0a 09 09 09 63 68 61 72 |++ = ch;|....char|
|000008d0| 73 6c 65 66 74 2d 2d 3b | 0a 09 09 09 63 68 69 6e |sleft--;|....chin|
|000008e0| 64 65 78 2b 2b 3b 0a 09 | 09 7d 0a 09 09 69 66 20 |dex++;..|.}...if |
|000008f0| 28 63 68 61 72 73 6c 65 | 66 74 20 3c 20 31 29 20 |(charsle|ft < 1) |
|00000900| 7b 0a 09 09 09 6e 65 77 | 62 75 66 66 65 72 20 3d |{....new|buffer =|
|00000910| 20 6e 65 77 20 63 68 61 | 72 5b 62 75 66 66 73 69 | new cha|r[buffsi|
|00000920| 7a 65 2b 62 75 66 66 65 | 72 67 72 6f 77 74 68 5d |ze+buffe|rgrowth]|
|00000930| 3b 0a 09 09 09 73 74 72 | 63 70 79 28 6e 65 77 62 |;....str|cpy(newb|
|00000940| 75 66 66 65 72 2c 6f 75 | 74 62 75 66 66 65 72 29 |uffer,ou|tbuffer)|
|00000950| 3b 0a 09 09 09 64 65 6c | 65 74 65 20 6f 75 74 62 |;....del|ete outb|
|00000960| 75 66 66 65 72 3b 0a 09 | 09 09 6f 75 74 62 75 66 |uffer;..|..outbuf|
|00000970| 66 65 72 20 3d 20 6e 65 | 77 62 75 66 66 65 72 3b |fer = ne|wbuffer;|
|00000980| 0a 09 09 09 62 75 66 66 | 73 69 7a 65 20 2b 3d 20 |....buff|size += |
|00000990| 62 75 66 66 65 72 67 72 | 6f 77 74 68 3b 0a 09 09 |buffergr|owth;...|
|000009a0| 09 70 20 3d 20 6f 75 74 | 62 75 66 66 65 72 2b 63 |.p = out|buffer+c|
|000009b0| 68 69 6e 64 65 78 3b 0a | 09 09 09 63 68 61 72 73 |hindex;.|...chars|
|000009c0| 6c 65 66 74 20 3d 20 62 | 75 66 66 65 72 67 72 6f |left = b|uffergro|
|000009d0| 77 74 68 3b 0a 09 09 7d | 0a 09 7d 0a 09 2a 70 20 |wth;...}|..}..*p |
|000009e0| 3d 20 30 3b 0a 09 72 65 | 74 75 72 6e 20 6f 75 74 |= 0;..re|turn out|
|000009f0| 62 75 66 66 65 72 3b 0a | 7d 0a 0a 6d 61 69 6e 28 |buffer;.|}..main(|
|00000a00| 69 6e 74 20 61 72 67 63 | 2c 63 68 61 72 2a 2a 20 |int argc|,char** |
|00000a10| 61 72 67 76 29 0a 7b 0a | 09 69 6e 74 20 6e 75 6d |argv).{.|.int num|
|00000a20| 70 61 67 65 73 2c 6e 75 | 6d 6b 65 79 73 3b 0a 09 |pages,nu|mkeys;..|
|00000a30| 63 68 61 72 2a 20 70 3b | 0a 09 4b 65 79 20 6b 65 |char* p;|..Key ke|
|00000a40| 79 3b 0a 09 63 68 61 72 | 20 63 68 3b 0a 09 73 74 |y;..char| ch;..st|
|00000a50| 61 74 69 63 20 63 68 61 | 72 20 77 6f 72 64 62 75 |atic cha|r wordbu|
|00000a60| 66 66 65 72 5b 38 30 5d | 3b 0a 09 73 74 61 74 69 |ffer[80]|;..stati|
|00000a70| 63 20 63 68 61 72 2a 20 | 76 65 63 74 6f 72 5b 32 |c char* |vector[2|
|00000a80| 30 34 38 5d 3b 0a 09 69 | 6e 74 20 69 65 6c 74 3b |048];..i|nt ielt;|
|00000a90| 0a 09 43 61 72 64 20 74 | 65 6d 70 63 61 72 64 28 |..Card t|empcard(|
|00000aa0| 4f 74 68 65 72 2c 30 2c | 30 2c 30 2c 30 2c 30 2c |Other,0,|0,0,0,0,|
|00000ab0| 30 2c 30 29 3b 0a 09 73 | 74 61 74 69 63 20 41 73 |0,0);..s|tatic As|
|00000ac0| 63 69 69 32 4c 69 62 72 | 20 61 72 67 73 28 61 72 |cii2Libr| args(ar|
|00000ad0| 67 63 2c 61 72 67 76 29 | 3b 0a 09 63 69 6e 20 3e |gc,argv)|;..cin >|
|00000ae0| 3e 20 6e 75 6d 70 61 67 | 65 73 3b 0a 09 69 66 20 |> numpag|es;..if |
|00000af0| 28 61 72 67 73 2e 6d 69 | 6e 70 61 67 65 73 5f 70 |(args.mi|npages_p|
|00000b00| 61 73 73 65 64 20 26 26 | 20 61 72 67 73 2e 6d 69 |assed &&| args.mi|
|00000b10| 6e 70 61 67 65 73 20 3e | 20 6e 75 6d 70 61 67 65 |npages >| numpage|
|00000b20| 73 29 0a 09 20 20 20 20 | 6e 75 6d 70 61 67 65 73 |s).. |numpages|
|00000b30| 20 3d 20 61 72 67 73 2e | 6d 69 6e 70 61 67 65 73 | = args.|minpages|
|00000b40| 3b 0a 09 76 42 54 72 65 | 65 20 6f 75 74 74 72 65 |;..vBTre|e outtre|
|00000b50| 65 28 61 72 67 73 2e 6f | 75 74 66 69 6c 65 2c 28 |e(args.o|utfile,(|
|00000b60| 4f 70 65 6e 4d 6f 64 65 | 29 28 52 65 61 64 57 72 |OpenMode|)(ReadWr|
|00000b70| 69 74 65 7c 43 72 65 61 | 74 65 29 2c 6e 75 6d 70 |ite|Crea|te),nump|
|00000b80| 61 67 65 73 29 3b 0a 09 | 73 77 69 74 63 68 20 28 |ages);..|switch (|
|00000b90| 6f 75 74 74 72 65 65 2e | 4f 70 65 6e 53 74 61 74 |outtree.|OpenStat|
|00000ba0| 28 29 29 20 7b 0a 09 09 | 63 61 73 65 20 66 61 69 |()) {...|case fai|
|00000bb0| 6c 75 72 65 3a 20 69 6e | 74 20 65 72 72 6f 72 20 |lure: in|t error |
|00000bc0| 3d 20 65 72 72 6e 6f 3b | 0a 09 09 09 20 20 20 20 |= errno;|.... |
|00000bd0| 20 20 63 65 72 72 20 3c | 3c 20 22 43 6f 75 6c 64 | cerr <|< "Could|
|00000be0| 20 6e 6f 74 20 63 72 65 | 61 74 65 20 22 20 3c 3c | not cre|ate " <<|
|00000bf0| 20 61 72 67 73 2e 6f 75 | 74 66 69 6c 65 0a 09 09 | args.ou|tfile...|
|00000c00| 09 09 20 20 20 3c 3c 20 | 22 3a 20 22 20 3c 3c 20 |.. << |": " << |
|00000c10| 73 74 72 65 72 72 6f 72 | 28 65 72 72 6f 72 29 20 |strerror|(error) |
|00000c20| 3c 3c 20 22 5c 6e 22 3b | 0a 09 09 09 20 20 20 20 |<< "\n";|.... |
|00000c30| 20 20 65 78 69 74 28 65 | 72 72 6f 72 29 3b 0a 09 | exit(e|rror);..|
|00000c40| 09 63 61 73 65 20 6f 70 | 65 6e 6f 6c 64 3a 20 63 |.case op|enold: c|
|00000c50| 65 72 72 20 3c 3c 20 61 | 72 67 73 2e 6f 75 74 66 |err << a|rgs.outf|
|00000c60| 69 6c 65 20 3c 3c 20 22 | 20 61 6c 72 65 61 64 79 |ile << "| already|
|00000c70| 20 65 78 69 73 74 73 21 | 5c 6e 22 3b 0a 09 09 09 | exists!|\n";....|
|00000c80| 20 20 20 20 20 20 65 78 | 69 74 28 31 29 3b 0a 09 | ex|it(1);..|
|00000c90| 7d 09 09 09 20 20 20 20 | 20 20 0a 09 63 69 6e 20 |}... | ..cin |
|00000ca0| 3e 3e 20 6e 75 6d 6b 65 | 79 73 3b 0a 09 66 6f 72 |>> numke|ys;..for|
|00000cb0| 20 28 69 6e 74 20 69 20 | 3d 20 30 3b 69 20 3c 20 | (int i |= 0;i < |
|00000cc0| 6e 75 6d 6b 65 79 73 3b | 69 2b 2b 29 20 7b 0a 09 |numkeys;|i++) {..|
|00000cd0| 09 70 20 3d 20 52 65 61 | 64 51 75 6f 74 65 64 53 |.p = Rea|dQuotedS|
|00000ce0| 74 72 69 6e 67 28 63 69 | 6e 29 3b 0a 09 09 73 74 |tring(ci|n);...st|
|00000cf0| 72 6e 63 70 79 28 6b 65 | 79 2c 70 2c 33 36 29 3b |rncpy(ke|y,p,36);|
|00000d00| 0a 09 09 6b 65 79 5b 33 | 35 5d 20 3d 20 30 3b 0a |...key[3|5] = 0;.|
|00000d10| 09 09 64 65 6c 65 74 65 | 20 70 3b 0a 09 09 2f 2f |..delete| p;...//|
|00000d20| 63 65 72 72 20 3c 3c 20 | 22 2a 2a 2a 20 4b 65 79 |cerr << |"*** Key|
|00000d30| 20 3d 20 7c 22 20 3c 3c | 20 6b 65 79 20 3c 3c 20 | = |" <<| key << |
|00000d40| 22 7c 5c 6e 22 3b 0a 09 | 09 64 6f 20 7b 0a 09 09 |"|\n";..|.do {...|
|00000d50| 09 63 69 6e 20 3e 3e 20 | 63 68 3b 0a 09 09 7d 20 |.cin >> |ch;...} |
|00000d60| 77 68 69 6c 65 20 28 63 | 68 20 21 3d 20 27 23 27 |while (c|h != '#'|
|00000d70| 29 3b 0a 09 09 63 69 6e | 20 3e 3e 20 63 68 3b 0a |);...cin| >> ch;.|
|00000d80| 09 09 69 66 20 28 63 68 | 20 21 3d 20 27 43 27 29 |..if (ch| != 'C')|
|00000d90| 20 7b 0a 09 09 09 63 65 | 72 72 20 3c 3c 20 66 6f | {....ce|rr << fo|
|00000da0| 72 6d 28 22 53 79 6e 74 | 61 78 20 65 72 72 6f 72 |rm("Synt|ax error|
|00000db0| 20 72 65 61 64 69 6e 67 | 20 43 61 72 64 20 25 64 | reading| Card %d|
|00000dc0| 3a 20 65 78 70 65 63 74 | 65 64 20 61 20 43 2c 20 |: expect|ed a C, |
|00000dd0| 73 61 77 20 61 20 25 63 | 5c 6e 22 2c 0a 09 09 09 |saw a %c|\n",....|
|00000de0| 09 20 20 20 20 20 69 2c | 63 68 29 3b 0a 09 09 09 |. i,|ch);....|
|00000df0| 65 78 69 74 28 31 29 3b | 0a 09 09 7d 0a 09 09 63 |exit(1);|...}...c|
|00000e00| 69 6e 20 3e 3e 20 63 68 | 3b 0a 09 09 69 66 20 28 |in >> ch|;...if (|
|00000e10| 63 68 20 21 3d 20 27 28 | 27 29 20 7b 0a 09 09 09 |ch != '(|') {....|
|00000e20| 63 65 72 72 20 3c 3c 20 | 66 6f 72 6d 28 22 53 79 |cerr << |form("Sy|
|00000e30| 6e 74 61 78 20 65 72 72 | 6f 72 20 72 65 61 64 69 |ntax err|or readi|
|00000e40| 6e 67 20 43 61 72 64 20 | 25 64 3a 20 65 78 70 65 |ng Card |%d: expe|
|00000e50| 63 74 65 64 20 61 20 28 | 2c 20 73 61 77 20 61 20 |cted a (|, saw a |
|00000e60| 25 63 5c 6e 22 2c 0a 09 | 09 09 09 20 20 20 20 20 |%c\n",..|... |
|00000e70| 69 2c 63 68 29 3b 0a 09 | 09 09 65 78 69 74 28 31 |i,ch);..|..exit(1|
|00000e80| 29 3b 0a 09 09 7d 0a 09 | 09 77 68 69 6c 65 20 28 |);...}..|.while (|
|00000e90| 74 72 75 65 29 20 7b 0a | 09 09 09 77 68 69 6c 65 |true) {.|...while|
|00000ea0| 20 28 74 72 75 65 29 20 | 7b 0a 09 09 09 09 63 69 | (true) |{.....ci|
|00000eb0| 6e 20 3e 3e 20 63 68 3b | 0a 09 09 09 09 2f 2f 63 |n >> ch;|.....//c|
|00000ec0| 65 72 72 20 3c 3c 20 22 | 2a 2a 2a 20 63 68 20 3d |err << "|*** ch =|
|00000ed0| 20 27 22 20 3c 3c 20 63 | 68 20 3c 3c 20 22 27 5c | '" << c|h << "'\|
|00000ee0| 6e 22 3b 0a 09 09 09 09 | 69 66 20 28 63 68 20 3d |n";.....|if (ch =|
|00000ef0| 3d 20 27 29 27 29 20 62 | 72 65 61 6b 3b 0a 09 09 |= ')') b|reak;...|
|00000f00| 09 09 65 6c 73 65 20 69 | 66 20 28 63 68 20 3e 20 |..else i|f (ch > |
|00000f10| 27 20 27 29 20 7b 0a 09 | 09 09 09 09 2f 2f 63 65 |' ') {..|....//ce|
|00000f20| 72 72 20 3c 3c 20 22 2a | 2a 2a 20 70 75 74 74 69 |rr << "*|** putti|
|00000f30| 6e 67 20 62 61 63 6b 20 | 27 22 20 3c 3c 20 63 68 |ng back |'" << ch|
|00000f40| 20 3c 3c 20 22 27 5c 6e | 22 3b 0a 09 09 09 09 09 | << "'\n|";......|
|00000f50| 63 69 6e 2e 70 75 74 62 | 61 63 6b 28 63 68 29 3b |cin.putb|ack(ch);|
|00000f60| 0a 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 09 09 09 |......br|eak;....|
|00000f70| 09 7d 0a 09 09 09 7d 0a | 09 09 09 69 66 20 28 63 |.}....}.|...if (c|
|00000f80| 68 20 3d 3d 20 27 29 27 | 29 20 62 72 65 61 6b 3b |h == ')'|) break;|
|00000f90| 0a 09 09 09 63 69 6e 20 | 3e 3e 20 77 6f 72 64 62 |....cin |>> wordb|
|00000fa0| 75 66 66 65 72 3b 0a 09 | 09 09 2f 2f 63 65 72 72 |uffer;..|..//cerr|
|00000fb0| 20 3c 3c 20 22 2a 2a 2a | 20 77 6f 72 64 62 75 66 | << "***| wordbuf|
|00000fc0| 66 65 72 20 3d 20 7c 22 | 20 3c 3c 20 77 6f 72 64 |fer = |"| << word|
|00000fd0| 62 75 66 66 65 72 20 3c | 3c 20 22 7c 5c 6e 22 3b |buffer <|< "|\n";|
|00000fe0| 0a 09 09 09 66 6f 72 20 | 28 70 20 3d 20 77 6f 72 |....for |(p = wor|
|00000ff0| 64 62 75 66 66 65 72 3b | 2a 70 20 21 3d 20 30 3b |dbuffer;|*p != 0;|
|00001000| 70 2b 2b 29 20 7b 0a 09 | 09 09 09 63 68 20 3d 20 |p++) {..|...ch = |
|00001010| 2a 70 3b 0a 09 09 09 09 | 69 66 20 28 69 73 6c 6f |*p;.....|if (islo|
|00001020| 77 65 72 28 63 68 29 29 | 20 63 68 20 3d 20 74 6f |wer(ch))| ch = to|
|00001030| 75 70 70 65 72 28 63 68 | 29 3b 0a 09 09 09 09 2a |upper(ch|);.....*|
|00001040| 70 20 3d 20 63 68 3b 0a | 09 09 09 7d 0a 09 09 09 |p = ch;.|...}....|
|00001050| 69 66 20 28 73 74 72 63 | 6d 70 28 77 6f 72 64 62 |if (strc|mp(wordb|
|00001060| 75 66 66 65 72 2c 22 3a | 54 59 50 45 22 29 20 3d |uffer,":|TYPE") =|
|00001070| 3d 20 30 29 20 7b 0a 09 | 09 09 09 63 69 6e 20 3e |= 0) {..|...cin >|
|00001080| 3e 20 77 6f 72 64 62 75 | 66 66 65 72 3b 0a 09 09 |> wordbu|ffer;...|
|00001090| 09 09 74 65 6d 70 63 61 | 72 64 2e 74 79 70 65 20 |..tempca|rd.type |
|000010a0| 3d 20 4e 61 6d 65 54 79 | 70 65 28 77 6f 72 64 62 |= NameTy|pe(wordb|
|000010b0| 75 66 66 65 72 29 3b 0a | 09 09 09 7d 20 65 6c 73 |uffer);.|...} els|
|000010c0| 65 20 69 66 20 28 73 74 | 72 63 6d 70 28 77 6f 72 |e if (st|rcmp(wor|
|000010d0| 64 62 75 66 66 65 72 2c | 22 3a 41 55 54 48 4f 52 |dbuffer,|":AUTHOR|
|000010e0| 22 29 20 3d 3d 20 30 29 | 20 7b 0a 09 09 09 09 74 |") == 0)| {.....t|
|000010f0| 65 6d 70 63 61 72 64 2e | 61 75 74 68 6f 72 20 3d |empcard.|author =|
|00001100| 20 52 65 61 64 51 75 6f | 74 65 64 53 74 72 69 6e | ReadQuo|tedStrin|
|00001110| 67 28 63 69 6e 29 3b 0a | 09 09 09 7d 20 65 6c 73 |g(cin);.|...} els|
|00001120| 65 20 69 66 20 28 73 74 | 72 63 6d 70 28 77 6f 72 |e if (st|rcmp(wor|
|00001130| 64 62 75 66 66 65 72 2c | 22 3a 54 49 54 4c 45 22 |dbuffer,|":TITLE"|
|00001140| 29 20 3d 3d 20 30 29 20 | 7b 0a 09 09 09 09 74 65 |) == 0) |{.....te|
|00001150| 6d 70 63 61 72 64 2e 74 | 69 74 6c 65 20 3d 20 52 |mpcard.t|itle = R|
|00001160| 65 61 64 51 75 6f 74 65 | 64 53 74 72 69 6e 67 28 |eadQuote|dString(|
|00001170| 63 69 6e 29 3b 0a 09 09 | 09 7d 20 65 6c 73 65 20 |cin);...|.} else |
|00001180| 69 66 20 28 73 74 72 63 | 6d 70 28 77 6f 72 64 62 |if (strc|mp(wordb|
|00001190| 75 66 66 65 72 2c 22 3a | 50 55 42 4c 49 53 48 45 |uffer,":|PUBLISHE|
|000011a0| 52 22 29 20 3d 3d 20 30 | 29 20 7b 0a 09 09 09 09 |R") == 0|) {.....|
|000011b0| 74 65 6d 70 63 61 72 64 | 2e 70 75 62 6c 69 73 68 |tempcard|.publish|
|000011c0| 65 72 20 3d 20 52 65 61 | 64 51 75 6f 74 65 64 53 |er = Rea|dQuotedS|
|000011d0| 74 72 69 6e 67 28 63 69 | 6e 29 3b 0a 09 09 09 7d |tring(ci|n);....}|
|000011e0| 20 65 6c 73 65 20 69 66 | 20 28 73 74 72 63 6d 70 | else if| (strcmp|
|000011f0| 28 77 6f 72 64 62 75 66 | 66 65 72 2c 22 3a 43 49 |(wordbuf|fer,":CI|
|00001200| 54 59 22 29 20 3d 3d 20 | 30 29 20 7b 0a 09 09 09 |TY") == |0) {....|
|00001210| 09 74 65 6d 70 63 61 72 | 64 2e 63 69 74 79 20 3d |.tempcar|d.city =|
|00001220| 20 52 65 61 64 51 75 6f | 74 65 64 53 74 72 69 6e | ReadQuo|tedStrin|
|00001230| 67 28 63 69 6e 29 3b 0a | 09 09 09 7d 20 65 6c 73 |g(cin);.|...} els|
|00001240| 65 20 69 66 20 28 73 74 | 72 63 6d 70 28 77 6f 72 |e if (st|rcmp(wor|
|00001250| 64 62 75 66 66 65 72 2c | 22 3a 44 45 53 43 52 49 |dbuffer,|":DESCRI|
|00001260| 50 54 49 4f 4e 22 29 20 | 3d 3d 20 30 29 20 7b 0a |PTION") |== 0) {.|
|00001270| 09 09 09 09 74 65 6d 70 | 63 61 72 64 2e 64 65 73 |....temp|card.des|
|00001280| 63 72 69 70 74 69 6f 6e | 20 3d 20 52 65 61 64 51 |cription| = ReadQ|
|00001290| 75 6f 74 65 64 53 74 72 | 69 6e 67 28 63 69 6e 29 |uotedStr|ing(cin)|
|000012a0| 3b 0a 09 09 09 7d 20 65 | 6c 73 65 20 69 66 20 28 |;....} e|lse if (|
|000012b0| 73 74 72 63 6d 70 28 77 | 6f 72 64 62 75 66 66 65 |strcmp(w|ordbuffe|
|000012c0| 72 2c 22 3a 56 4f 4c 55 | 4d 45 22 29 20 3d 3d 20 |r,":VOLU|ME") == |
|000012d0| 30 29 20 7b 0a 09 09 09 | 09 63 69 6e 20 3e 3e 20 |0) {....|.cin >> |
|000012e0| 74 65 6d 70 63 61 72 64 | 2e 76 6f 6c 3b 0a 09 09 |tempcard|.vol;...|
|000012f0| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 73 74 72 63 |.} else |if (strc|
|00001300| 6d 70 28 77 6f 72 64 62 | 75 66 66 65 72 2c 22 3a |mp(wordb|uffer,":|
|00001310| 59 45 41 52 22 29 20 3d | 3d 20 30 29 20 7b 0a 09 |YEAR") =|= 0) {..|
|00001320| 09 09 09 63 69 6e 20 3e | 3e 20 74 65 6d 70 63 61 |...cin >|> tempca|
|00001330| 72 64 2e 79 65 61 72 3b | 0a 09 09 09 7d 20 65 6c |rd.year;|....} el|
|00001340| 73 65 20 7b 0a 09 09 09 | 09 63 65 72 72 20 3c 3c |se {....|.cerr <<|
|00001350| 20 66 6f 72 6d 28 22 42 | 61 64 20 6b 65 79 20 69 | form("B|ad key i|
|00001360| 6e 20 43 61 72 64 20 23 | 25 64 3a 20 25 73 5c 6e |n Card #|%d: %s\n|
|00001370| 22 2c 69 2c 77 6f 72 64 | 62 75 66 66 65 72 29 3b |",i,word|buffer);|
|00001380| 0a 09 09 09 7d 0a 09 09 | 7d 0a 09 09 43 61 72 64 |....}...|}...Card|
|00001390| 52 65 63 6f 72 64 20 63 | 72 65 63 28 26 74 65 6d |Record c|rec(&tem|
|000013a0| 70 63 61 72 64 29 3b 0a | 09 09 52 65 63 6f 72 64 |pcard);.|..Record|
|000013b0| 20 72 61 77 72 65 63 20 | 3d 20 63 72 65 63 3b 0a | rawrec |= crec;.|
|000013c0| 09 09 6f 75 74 74 72 65 | 65 2e 49 6e 73 65 72 74 |..outtre|e.Insert|
|000013d0| 49 64 28 6b 65 79 2c 26 | 72 61 77 72 65 63 29 3b |Id(key,&|rawrec);|
|000013e0| 0a 09 09 69 66 20 28 74 | 65 6d 70 63 61 72 64 2e |...if (t|empcard.|
|000013f0| 61 75 74 68 6f 72 20 21 | 3d 20 30 29 20 7b 0a 09 |author !|= 0) {..|
|00001400| 09 09 64 65 6c 65 74 65 | 20 74 65 6d 70 63 61 72 |..delete| tempcar|
|00001410| 64 2e 61 75 74 68 6f 72 | 3b 0a 09 09 09 74 65 6d |d.author|;....tem|
|00001420| 70 63 61 72 64 2e 61 75 | 74 68 6f 72 20 3d 20 30 |pcard.au|thor = 0|
|00001430| 3b 0a 09 09 7d 0a 09 09 | 69 66 20 28 74 65 6d 70 |;...}...|if (temp|
|00001440| 63 61 72 64 2e 74 69 74 | 6c 65 20 21 3d 20 30 29 |card.tit|le != 0)|
|00001450| 20 7b 0a 09 09 09 64 65 | 6c 65 74 65 20 74 65 6d | {....de|lete tem|
|00001460| 70 63 61 72 64 2e 74 69 | 74 6c 65 3b 0a 09 09 09 |pcard.ti|tle;....|
|00001470| 74 65 6d 70 63 61 72 64 | 2e 74 69 74 6c 65 20 3d |tempcard|.title =|
|00001480| 20 30 3b 0a 09 09 7d 0a | 09 09 69 66 20 28 74 65 | 0;...}.|..if (te|
|00001490| 6d 70 63 61 72 64 2e 70 | 75 62 6c 69 73 68 65 72 |mpcard.p|ublisher|
|000014a0| 20 21 3d 20 30 29 20 7b | 0a 09 09 09 64 65 6c 65 | != 0) {|....dele|
|000014b0| 74 65 20 74 65 6d 70 63 | 61 72 64 2e 70 75 62 6c |te tempc|ard.publ|
|000014c0| 69 73 68 65 72 3b 0a 09 | 09 09 74 65 6d 70 63 61 |isher;..|..tempca|
|000014d0| 72 64 2e 70 75 62 6c 69 | 73 68 65 72 20 3d 20 30 |rd.publi|sher = 0|
|000014e0| 3b 0a 09 09 7d 0a 09 09 | 69 66 20 28 74 65 6d 70 |;...}...|if (temp|
|000014f0| 63 61 72 64 2e 63 69 74 | 79 20 21 3d 20 30 29 20 |card.cit|y != 0) |
|00001500| 7b 0a 09 09 09 64 65 6c | 65 74 65 20 74 65 6d 70 |{....del|ete temp|
|00001510| 63 61 72 64 2e 63 69 74 | 79 3b 0a 09 09 09 74 65 |card.cit|y;....te|
|00001520| 6d 70 63 61 72 64 2e 63 | 69 74 79 20 3d 20 30 3b |mpcard.c|ity = 0;|
|00001530| 0a 09 09 7d 0a 09 09 69 | 66 20 28 74 65 6d 70 63 |...}...i|f (tempc|
|00001540| 61 72 64 2e 64 65 73 63 | 72 69 70 74 69 6f 6e 20 |ard.desc|ription |
|00001550| 21 3d 20 30 29 20 7b 0a | 09 09 09 64 65 6c 65 74 |!= 0) {.|...delet|
|00001560| 65 20 74 65 6d 70 63 61 | 72 64 2e 64 65 73 63 72 |e tempca|rd.descr|
|00001570| 69 70 74 69 6f 6e 3b 0a | 09 09 09 74 65 6d 70 63 |iption;.|...tempc|
|00001580| 61 72 64 2e 64 65 73 63 | 72 69 70 74 69 6f 6e 20 |ard.desc|ription |
|00001590| 3d 20 30 3b 0a 09 09 7d | 0a 09 7d 0a 09 63 69 6e |= 0;...}|..}..cin|
|000015a0| 20 3e 3e 20 6e 75 6d 6b | 65 79 73 3b 0a 09 66 6f | >> numk|eys;..fo|
|000015b0| 72 20 28 69 20 3d 20 30 | 3b 69 20 3c 20 6e 75 6d |r (i = 0|;i < num|
|000015c0| 6b 65 79 73 3b 69 2b 2b | 29 20 7b 0a 09 09 70 20 |keys;i++|) {...p |
|000015d0| 3d 20 52 65 61 64 51 75 | 6f 74 65 64 53 74 72 69 |= ReadQu|otedStri|
|000015e0| 6e 67 28 63 69 6e 29 3b | 0a 09 09 73 74 72 6e 63 |ng(cin);|...strnc|
|000015f0| 70 79 28 6b 65 79 2c 70 | 2c 33 36 29 3b 0a 09 09 |py(key,p|,36);...|
|00001600| 6b 65 79 5b 33 35 5d 20 | 3d 20 30 3b 0a 09 09 64 |key[35] |= 0;...d|
|00001610| 65 6c 65 74 65 20 70 3b | 0a 09 09 64 6f 20 7b 0a |elete p;|...do {.|
|00001620| 09 09 09 63 69 6e 20 3e | 3e 20 63 68 3b 0a 09 09 |...cin >|> ch;...|
|00001630| 7d 20 77 68 69 6c 65 20 | 28 63 68 20 21 3d 20 27 |} while |(ch != '|
|00001640| 23 27 29 3b 0a 09 09 63 | 69 6e 20 3e 3e 20 63 68 |#');...c|in >> ch|
|00001650| 3b 0a 09 09 69 66 20 28 | 63 68 20 21 3d 20 27 28 |;...if (|ch != '(|
|00001660| 27 29 20 7b 0a 09 09 09 | 63 65 72 72 20 3c 3c 20 |') {....|cerr << |
|00001670| 66 6f 72 6d 28 22 53 79 | 6e 74 61 78 20 65 72 72 |form("Sy|ntax err|
|00001680| 6f 72 20 72 65 61 64 69 | 6e 67 20 54 69 74 6c 65 |or readi|ng Title|
|00001690| 20 25 64 3a 20 65 78 70 | 65 63 74 65 64 20 61 20 | %d: exp|ected a |
|000016a0| 28 2c 20 73 61 77 20 61 | 20 25 63 5c 6e 22 2c 0a |(, saw a| %c\n",.|
|000016b0| 09 09 09 09 20 20 20 20 | 20 69 2c 63 68 29 3b 0a |.... | i,ch);.|
|000016c0| 09 09 09 65 78 69 74 28 | 31 29 3b 0a 09 09 7d 0a |...exit(|1);...}.|
|000016d0| 09 09 66 6f 72 20 28 69 | 65 6c 74 20 3d 20 30 3b |..for (i|elt = 0;|
|000016e0| 69 65 6c 74 20 3c 20 32 | 30 34 38 3b 69 65 6c 74 |ielt < 2|048;ielt|
|000016f0| 2b 2b 29 20 7b 0a 09 09 | 09 77 68 69 6c 65 20 28 |++) {...|.while (|
|00001700| 74 72 75 65 29 20 7b 0a | 09 09 09 09 63 69 6e 20 |true) {.|....cin |
|00001710| 3e 3e 20 63 68 3b 0a 09 | 09 09 09 69 66 20 28 63 |>> ch;..|...if (c|
|00001720| 68 20 3d 3d 20 27 29 27 | 29 20 62 72 65 61 6b 3b |h == ')'|) break;|
|00001730| 0a 09 09 09 09 65 6c 73 | 65 20 69 66 20 28 63 68 |.....els|e if (ch|
|00001740| 20 3e 20 27 20 27 29 20 | 7b 0a 09 09 09 09 09 63 | > ' ') |{......c|
|00001750| 69 6e 2e 70 75 74 62 61 | 63 6b 28 63 68 29 3b 0a |in.putba|ck(ch);.|
|00001760| 09 09 09 09 09 62 72 65 | 61 6b 3b 0a 09 09 09 09 |.....bre|ak;.....|
|00001770| 7d 0a 09 09 09 7d 0a 09 | 09 09 69 66 20 28 63 68 |}....}..|..if (ch|
|00001780| 20 3d 3d 20 27 29 27 29 | 20 62 72 65 61 6b 3b 0a | == ')')| break;.|
|00001790| 09 09 09 76 65 63 74 6f | 72 5b 69 65 6c 74 5d 20 |...vecto|r[ielt] |
|000017a0| 3d 20 52 65 61 64 51 75 | 6f 74 65 64 53 74 72 69 |= ReadQu|otedStri|
|000017b0| 6e 67 28 63 69 6e 29 3b | 0a 09 09 7d 0a 09 09 4c |ng(cin);|...}...L|
|000017c0| 69 73 74 52 65 63 6f 72 | 64 20 6c 72 65 63 28 69 |istRecor|d lrec(i|
|000017d0| 65 6c 74 2c 76 65 63 74 | 6f 72 29 3b 0a 09 09 52 |elt,vect|or);...R|
|000017e0| 65 63 6f 72 64 20 72 61 | 77 72 65 63 20 3d 20 6c |ecord ra|wrec = l|
|000017f0| 72 65 63 3b 0a 09 09 6f | 75 74 74 72 65 65 2e 49 |rec;...o|uttree.I|
|00001800| 6e 73 65 72 74 54 69 74 | 6c 65 28 6b 65 79 2c 26 |nsertTit|le(key,&|
|00001810| 72 61 77 72 65 63 29 3b | 0a 09 09 66 6f 72 20 28 |rawrec);|...for (|
|00001820| 3b 69 65 6c 74 20 3e 20 | 30 3b 69 65 6c 74 2d 2d |;ielt > |0;ielt--|
|00001830| 29 20 64 65 6c 65 74 65 | 20 76 65 63 74 6f 72 5b |) delete| vector[|
|00001840| 69 65 6c 74 2d 31 5d 3b | 0a 09 7d 0a 09 63 69 6e |ielt-1];|..}..cin|
|00001850| 20 3e 3e 20 6e 75 6d 6b | 65 79 73 3b 0a 09 66 6f | >> numk|eys;..fo|
|00001860| 72 20 28 69 20 3d 20 30 | 3b 69 20 3c 20 6e 75 6d |r (i = 0|;i < num|
|00001870| 6b 65 79 73 3b 69 2b 2b | 29 20 7b 0a 09 09 70 20 |keys;i++|) {...p |
|00001880| 3d 20 52 65 61 64 51 75 | 6f 74 65 64 53 74 72 69 |= ReadQu|otedStri|
|00001890| 6e 67 28 63 69 6e 29 3b | 0a 09 09 73 74 72 6e 63 |ng(cin);|...strnc|
|000018a0| 70 79 28 6b 65 79 2c 70 | 2c 33 36 29 3b 0a 09 09 |py(key,p|,36);...|
|000018b0| 6b 65 79 5b 33 35 5d 20 | 3d 20 30 3b 0a 09 09 64 |key[35] |= 0;...d|
|000018c0| 65 6c 65 74 65 20 70 3b | 0a 09 09 64 6f 20 7b 0a |elete p;|...do {.|
|000018d0| 09 09 09 63 69 6e 20 3e | 3e 20 63 68 3b 0a 09 09 |...cin >|> ch;...|
|000018e0| 7d 20 77 68 69 6c 65 20 | 28 63 68 20 21 3d 20 27 |} while |(ch != '|
|000018f0| 23 27 29 3b 0a 09 09 63 | 69 6e 20 3e 3e 20 63 68 |#');...c|in >> ch|
|00001900| 3b 0a 09 09 69 66 20 28 | 63 68 20 21 3d 20 27 28 |;...if (|ch != '(|
|00001910| 27 29 20 7b 0a 09 09 09 | 63 65 72 72 20 3c 3c 20 |') {....|cerr << |
|00001920| 66 6f 72 6d 28 22 53 79 | 6e 74 61 78 20 65 72 72 |form("Sy|ntax err|
|00001930| 6f 72 20 72 65 61 64 69 | 6e 67 20 41 75 74 68 6f |or readi|ng Autho|
|00001940| 72 20 25 64 3a 20 65 78 | 70 65 63 74 65 64 20 61 |r %d: ex|pected a|
|00001950| 20 28 2c 20 73 61 77 20 | 61 20 25 63 5c 6e 22 2c | (, saw |a %c\n",|
|00001960| 0a 09 09 09 09 20 20 20 | 20 20 69 2c 63 68 29 3b |..... | i,ch);|
|00001970| 0a 09 09 09 65 78 69 74 | 28 31 29 3b 0a 09 09 7d |....exit|(1);...}|
|00001980| 0a 09 09 66 6f 72 20 28 | 69 65 6c 74 20 3d 20 30 |...for (|ielt = 0|
|00001990| 3b 69 65 6c 74 20 3c 20 | 32 30 34 38 3b 69 65 6c |;ielt < |2048;iel|
|000019a0| 74 2b 2b 29 20 7b 0a 09 | 09 09 77 68 69 6c 65 20 |t++) {..|..while |
|000019b0| 28 74 72 75 65 29 20 7b | 0a 09 09 09 09 63 69 6e |(true) {|.....cin|
|000019c0| 20 3e 3e 20 63 68 3b 0a | 09 09 09 09 69 66 20 28 | >> ch;.|....if (|
|000019d0| 63 68 20 3d 3d 20 27 29 | 27 29 20 62 72 65 61 6b |ch == ')|') break|
|000019e0| 3b 0a 09 09 09 09 65 6c | 73 65 20 69 66 20 28 63 |;.....el|se if (c|
|000019f0| 68 20 3e 20 27 20 27 29 | 20 7b 0a 09 09 09 09 09 |h > ' ')| {......|
|00001a00| 63 69 6e 2e 70 75 74 62 | 61 63 6b 28 63 68 29 3b |cin.putb|ack(ch);|
|00001a10| 0a 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 09 09 09 |......br|eak;....|
|00001a20| 09 7d 0a 09 09 09 7d 0a | 09 09 09 69 66 20 28 63 |.}....}.|...if (c|
|00001a30| 68 20 3d 3d 20 27 29 27 | 29 20 62 72 65 61 6b 3b |h == ')'|) break;|
|00001a40| 0a 09 09 09 76 65 63 74 | 6f 72 5b 69 65 6c 74 5d |....vect|or[ielt]|
|00001a50| 20 3d 20 52 65 61 64 51 | 75 6f 74 65 64 53 74 72 | = ReadQ|uotedStr|
|00001a60| 69 6e 67 28 63 69 6e 29 | 3b 0a 09 09 7d 0a 09 09 |ing(cin)|;...}...|
|00001a70| 4c 69 73 74 52 65 63 6f | 72 64 20 6c 72 65 63 28 |ListReco|rd lrec(|
|00001a80| 69 65 6c 74 2c 76 65 63 | 74 6f 72 29 3b 0a 09 09 |ielt,vec|tor);...|
|00001a90| 52 65 63 6f 72 64 20 72 | 61 77 72 65 63 20 3d 20 |Record r|awrec = |
|00001aa0| 6c 72 65 63 3b 0a 09 09 | 6f 75 74 74 72 65 65 2e |lrec;...|outtree.|
|00001ab0| 49 6e 73 65 72 74 41 75 | 74 68 6f 72 28 6b 65 79 |InsertAu|thor(key|
|00001ac0| 2c 26 72 61 77 72 65 63 | 29 3b 0a 09 09 66 6f 72 |,&rawrec|);...for|
|00001ad0| 20 28 3b 69 65 6c 74 20 | 3e 20 30 3b 69 65 6c 74 | (;ielt |> 0;ielt|
|00001ae0| 2d 2d 29 20 64 65 6c 65 | 74 65 20 76 65 63 74 6f |--) dele|te vecto|
|00001af0| 72 5b 69 65 6c 74 2d 31 | 5d 3b 0a 09 7d 0a 09 63 |r[ielt-1|];..}..c|
|00001b00| 69 6e 20 3e 3e 20 6e 75 | 6d 6b 65 79 73 3b 0a 09 |in >> nu|mkeys;..|
|00001b10| 66 6f 72 20 28 69 20 3d | 20 30 3b 69 20 3c 20 6e |for (i =| 0;i < n|
|00001b20| 75 6d 6b 65 79 73 3b 69 | 2b 2b 29 20 7b 0a 09 09 |umkeys;i|++) {...|
|00001b30| 70 20 3d 20 52 65 61 64 | 51 75 6f 74 65 64 53 74 |p = Read|QuotedSt|
|00001b40| 72 69 6e 67 28 63 69 6e | 29 3b 0a 09 09 73 74 72 |ring(cin|);...str|
|00001b50| 6e 63 70 79 28 6b 65 79 | 2c 70 2c 33 36 29 3b 0a |ncpy(key|,p,36);.|
|00001b60| 09 09 6b 65 79 5b 33 35 | 5d 20 3d 20 30 3b 0a 09 |..key[35|] = 0;..|
|00001b70| 09 64 65 6c 65 74 65 20 | 70 3b 0a 09 09 64 6f 20 |.delete |p;...do |
|00001b80| 7b 0a 09 09 09 63 69 6e | 20 3e 3e 20 63 68 3b 0a |{....cin| >> ch;.|
|00001b90| 09 09 7d 20 77 68 69 6c | 65 20 28 63 68 20 21 3d |..} whil|e (ch !=|
|00001ba0| 20 27 23 27 29 3b 0a 09 | 09 63 69 6e 20 3e 3e 20 | '#');..|.cin >> |
|00001bb0| 63 68 3b 0a 09 09 69 66 | 20 28 63 68 20 21 3d 20 |ch;...if| (ch != |
|00001bc0| 27 28 27 29 20 7b 0a 09 | 09 09 63 65 72 72 20 3c |'(') {..|..cerr <|
|00001bd0| 3c 20 66 6f 72 6d 28 22 | 53 79 6e 74 61 78 20 65 |< form("|Syntax e|
|00001be0| 72 72 6f 72 20 72 65 61 | 64 69 6e 67 20 53 75 62 |rror rea|ding Sub|
|00001bf0| 6a 65 63 74 20 6c 69 73 | 74 20 25 64 3a 20 65 78 |ject lis|t %d: ex|
|00001c00| 70 65 63 74 65 64 20 61 | 20 28 2c 20 73 61 77 20 |pected a| (, saw |
|00001c10| 61 20 25 63 5c 6e 22 2c | 0a 09 09 09 09 20 20 20 |a %c\n",|..... |
|00001c20| 20 20 69 2c 63 68 29 3b | 0a 09 09 09 65 78 69 74 | i,ch);|....exit|
|00001c30| 28 31 29 3b 0a 09 09 7d | 0a 09 09 66 6f 72 20 28 |(1);...}|...for (|
|00001c40| 69 65 6c 74 20 3d 20 30 | 3b 69 65 6c 74 20 3c 20 |ielt = 0|;ielt < |
|00001c50| 32 30 34 38 3b 69 65 6c | 74 2b 2b 29 20 7b 0a 09 |2048;iel|t++) {..|
|00001c60| 09 09 77 68 69 6c 65 20 | 28 74 72 75 65 29 20 7b |..while |(true) {|
|00001c70| 0a 09 09 09 09 63 69 6e | 20 3e 3e 20 63 68 3b 0a |.....cin| >> ch;.|
|00001c80| 09 09 09 09 69 66 20 28 | 63 68 20 3d 3d 20 27 29 |....if (|ch == ')|
|00001c90| 27 29 20 62 72 65 61 6b | 3b 0a 09 09 09 09 65 6c |') break|;.....el|
|00001ca0| 73 65 20 69 66 20 28 63 | 68 20 3e 20 27 20 27 29 |se if (c|h > ' ')|
|00001cb0| 20 7b 0a 09 09 09 09 09 | 63 69 6e 2e 70 75 74 62 | {......|cin.putb|
|00001cc0| 61 63 6b 28 63 68 29 3b | 0a 09 09 09 09 09 62 72 |ack(ch);|......br|
|00001cd0| 65 61 6b 3b 0a 09 09 09 | 09 7d 0a 09 09 09 7d 0a |eak;....|.}....}.|
|00001ce0| 09 09 09 69 66 20 28 63 | 68 20 3d 3d 20 27 29 27 |...if (c|h == ')'|
|00001cf0| 29 20 62 72 65 61 6b 3b | 0a 09 09 09 76 65 63 74 |) break;|....vect|
|00001d00| 6f 72 5b 69 65 6c 74 5d | 20 3d 20 52 65 61 64 51 |or[ielt]| = ReadQ|
|00001d10| 75 6f 74 65 64 53 74 72 | 69 6e 67 28 63 69 6e 29 |uotedStr|ing(cin)|
|00001d20| 3b 0a 09 09 7d 0a 09 09 | 4c 69 73 74 52 65 63 6f |;...}...|ListReco|
|00001d30| 72 64 20 6c 72 65 63 28 | 69 65 6c 74 2c 76 65 63 |rd lrec(|ielt,vec|
|00001d40| 74 6f 72 29 3b 0a 09 09 | 52 65 63 6f 72 64 20 72 |tor);...|Record r|
|00001d50| 61 77 72 65 63 20 3d 20 | 6c 72 65 63 3b 0a 09 09 |awrec = |lrec;...|
|00001d60| 6f 75 74 74 72 65 65 2e | 49 6e 73 65 72 74 53 75 |outtree.|InsertSu|
|00001d70| 62 6a 28 6b 65 79 2c 26 | 72 61 77 72 65 63 29 3b |bj(key,&|rawrec);|
|00001d80| 0a 09 09 66 6f 72 20 28 | 3b 69 65 6c 74 20 3e 20 |...for (|;ielt > |
|00001d90| 30 3b 69 65 6c 74 2d 2d | 29 20 64 65 6c 65 74 65 |0;ielt--|) delete|
|00001da0| 20 76 65 63 74 6f 72 5b | 69 65 6c 74 2d 31 5d 3b | vector[|ielt-1];|
|00001db0| 0a 09 7d 0a 7d 0a 0a 0a | 00 00 00 00 00 00 00 00 |..}.}...|........|
|00001dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e00| 45 64 69 74 4c 69 62 72 | 2f 44 65 6c 65 74 65 53 |EditLibr|/DeleteS|
|00001e10| 74 75 66 66 2e 63 63 00 | 00 00 00 00 00 00 00 00 |tuff.cc.|........|
|00001e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001e60| 00 00 00 00 31 30 30 36 | 34 34 20 00 20 31 32 30 |....1006|44 . 120|
|00001e70| 30 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |05 . 1|44 . |
|00001e80| 20 20 20 36 35 31 32 20 | 20 35 37 34 33 37 34 37 | 6512 | 5743747|
|00001e90| 31 34 31 20 20 31 34 32 | 32 33 00 20 30 00 00 00 |141 142|23. 0...|
|00001ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f00| 00 75 73 74 61 72 20 20 | 00 68 65 6c 6c 65 72 00 |.ustar |.heller.|
|00001f10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f20| 00 00 00 00 00 00 00 00 | 00 75 73 65 72 73 00 00 |........|.users..|
|00001f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002000| 2f 2a 20 2d 2a 2d 20 4d | 6f 64 65 3a 20 43 20 2d |/* -*- M|ode: C -|
|00002010| 2a 2d 20 2a 2f 0a 2f 2a | 20 44 65 6c 65 74 65 53 |*- */./*| DeleteS|
|00002020| 74 75 66 66 2e 63 63 20 | 2d 20 44 65 6c 65 74 65 |tuff.cc |- Delete|
|00002030| 20 66 75 6e 63 74 69 6f | 6e 73 0a 20 2a 20 43 72 | functio|ns. * Cr|
|00002040| 65 61 74 65 64 20 62 79 | 20 52 6f 62 65 72 74 20 |eated by| Robert |
|00002050| 48 65 6c 6c 65 72 20 6f | 6e 20 53 61 74 20 44 65 |Heller o|n Sat De|
|00002060| 63 20 31 34 20 30 30 3a | 31 31 3a 31 32 20 31 39 |c 14 00:|11:12 19|
|00002070| 39 31 0a 20 2a 0a 20 2a | 20 2d 2d 2d 2d 2d 2d 2d |91. *. *| -------|
|00002080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0a 20 2a 20 48 |--------|---. * H|
|000020c0| 6f 6d 65 20 4c 69 62 61 | 72 69 61 6e 20 62 79 20 |ome Liba|rian by |
|000020d0| 44 65 65 70 77 6f 6f 64 | 73 20 53 6f 66 74 77 61 |Deepwood|s Softwa|
|000020e0| 72 65 0a 20 2a 20 45 64 | 69 74 20 61 20 4c 69 62 |re. * Ed|it a Lib|
|000020f0| 72 61 72 69 61 6e 20 43 | 61 72 64 20 43 61 74 61 |rarian C|ard Cata|
|00002100| 6c 6f 67 20 66 69 6c 65 | 0a 20 2a 20 2d 2d 2d 2d |log file|. * ----|
|00002110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0a 20 |--------|------. |
|00002150| 2a 20 4d 6f 64 69 66 69 | 63 61 74 69 6f 6e 20 48 |* Modifi|cation H|
|00002160| 69 73 74 6f 72 79 3a 0a | 20 2a 20 2d 2d 2d 2d 2d |istory:.| * -----|
|00002170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 20 2a |--------|-----. *|
|000021b0| 20 43 6f 6e 74 65 6e 74 | 73 3a 0a 20 2a 20 2d 2d | Content|s:. * --|
|000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002200| 0a 20 2a 20 0a 20 2a 20 | 0a 20 2a 20 43 6f 70 79 |. * . * |. * Copy|
|00002210| 72 69 67 68 74 20 28 63 | 29 20 31 39 39 31 2c 31 |right (c|) 1991,1|
|00002220| 39 39 32 20 62 79 20 52 | 6f 62 65 72 74 20 68 65 |992 by R|obert he|
|00002230| 6c 6c 65 72 20 28 44 2f | 42 2f 41 20 44 65 65 70 |ller (D/|B/A Deep|
|00002240| 77 6f 6f 64 73 20 53 6f | 66 74 77 61 72 65 29 0a |woods So|ftware).|
|00002250| 20 2a 20 20 20 20 20 20 | 20 20 41 6c 6c 20 52 69 | * | All Ri|
|00002260| 67 68 74 73 20 52 65 73 | 65 72 76 65 64 0a 20 2a |ghts Res|erved. *|
|00002270| 20 0a 20 2a 2f 0a 0a 23 | 69 6e 63 6c 75 64 65 20 | . */..#|include |
|00002280| 3c 73 74 72 65 61 6d 2e | 68 3e 0a 23 69 6e 63 6c |<stream.|h>.#incl|
|00002290| 75 64 65 20 3c 76 42 54 | 72 65 65 2e 68 3e 0a 23 |ude <vBT|ree.h>.#|
|000022a0| 69 6e 63 6c 75 64 65 20 | 3c 63 74 79 70 65 2e 68 |include |<ctype.h|
|000022b0| 3e 0a 23 69 66 64 65 66 | 20 4d 45 53 53 59 44 4f |>.#ifdef| MESSYDO|
|000022c0| 53 0a 23 69 6e 63 6c 75 | 64 65 20 3c 43 61 72 64 |S.#inclu|de <Card|
|000022d0| 52 65 63 2e 68 3e 0a 23 | 69 6e 63 6c 75 64 65 20 |Rec.h>.#|include |
|000022e0| 3c 4c 69 73 74 52 65 63 | 2e 68 3e 0a 23 65 6c 73 |<ListRec|.h>.#els|
|000022f0| 65 0a 23 69 6e 63 6c 75 | 64 65 20 3c 43 61 72 64 |e.#inclu|de <Card|
|00002300| 52 65 63 6f 72 64 2e 68 | 3e 0a 23 69 6e 63 6c 75 |Record.h|>.#inclu|
|00002310| 64 65 20 3c 4c 69 73 74 | 52 65 63 6f 72 64 2e 68 |de <List|Record.h|
|00002320| 3e 0a 23 65 6e 64 69 66 | 0a 23 69 6e 63 6c 75 64 |>.#endif|.#includ|
|00002330| 65 20 3c 54 65 72 6d 69 | 6e 61 6c 2e 68 3e 0a 23 |e <Termi|nal.h>.#|
|00002340| 69 66 64 65 66 20 4d 45 | 53 53 59 44 4f 53 0a 23 |ifdef ME|SSYDOS.#|
|00002350| 69 6e 63 6c 75 64 65 20 | 3c 43 6d 64 53 63 72 65 |include |<CmdScre|
|00002360| 6e 2e 68 3e 0a 23 69 6e | 63 6c 75 64 65 20 3c 53 |n.h>.#in|clude <S|
|00002370| 63 72 50 6d 74 2e 68 3e | 0a 23 65 6c 73 65 0a 23 |crPmt.h>|.#else.#|
|00002380| 69 6e 63 6c 75 64 65 20 | 3c 43 6f 6d 6d 61 6e 64 |include |<Command|
|00002390| 53 63 72 65 65 6e 2e 68 | 3e 0a 23 69 6e 63 6c 75 |Screen.h|>.#inclu|
|000023a0| 64 65 20 3c 53 63 72 6f | 6c 6c 50 72 6f 6d 70 74 |de <Scro|llPrompt|
|000023b0| 2e 68 3e 0a 23 65 6e 64 | 69 66 0a 23 69 6e 63 6c |.h>.#end|if.#incl|
|000023c0| 75 64 65 20 22 45 64 69 | 74 44 65 66 73 2e 68 22 |ude "Edi|tDefs.h"|
|000023d0| 0a 23 69 6e 63 6c 75 64 | 65 20 22 45 64 69 74 47 |.#includ|e "EditG|
|000023e0| 6c 6f 62 2e 68 22 0a 23 | 69 66 64 65 66 20 75 6e |lob.h".#|ifdef un|
|000023f0| 69 78 0a 23 69 6e 63 6c | 75 64 65 20 3c 73 74 64 |ix.#incl|ude <std|
|00002400| 69 6f 2e 68 3e 0a 23 65 | 6e 64 69 66 0a 0a 63 6f |io.h>.#e|ndif..co|
|00002410| 6e 73 74 20 44 65 73 63 | 72 53 69 7a 65 20 3d 20 |nst Desc|rSize = |
|00002420| 34 30 39 36 3b 0a 73 74 | 61 74 69 63 20 63 68 61 |4096;.st|atic cha|
|00002430| 72 20 53 75 62 6a 4c 69 | 73 74 5b 44 65 73 63 72 |r SubjLi|st[Descr|
|00002440| 53 69 7a 65 5d 3b 0a 0a | 65 78 74 65 72 6e 20 76 |Size];..|extern v|
|00002450| 6f 69 64 20 55 70 64 61 | 74 65 53 75 62 6a 73 28 |oid Upda|teSubjs(|
|00002460| 63 6f 6e 73 74 20 63 68 | 61 72 2a 20 73 75 62 6a |const ch|ar* subj|
|00002470| 73 2c 63 6f 6e 73 74 20 | 63 68 61 72 2a 20 6f 73 |s,const |char* os|
|00002480| 75 62 6a 73 2c 63 6f 6e | 73 74 20 4b 65 79 20 6b |ubjs,con|st Key k|
|00002490| 65 79 29 3b 0a 65 78 74 | 65 72 6e 20 76 6f 69 64 |ey);.ext|ern void|
|000024a0| 20 55 70 64 61 74 65 41 | 75 74 68 6f 72 28 63 6f | UpdateA|uthor(co|
|000024b0| 6e 73 74 20 63 68 61 72 | 2a 20 61 75 74 68 2c 63 |nst char|* auth,c|
|000024c0| 6f 6e 73 74 20 63 68 61 | 72 2a 20 6f 61 75 74 68 |onst cha|r* oauth|
|000024d0| 2c 63 6f 6e 73 74 20 4b | 65 79 20 6b 65 79 29 3b |,const K|ey key);|
|000024e0| 0a 65 78 74 65 72 6e 20 | 76 6f 69 64 20 55 70 64 |.extern |void Upd|
|000024f0| 61 74 65 54 69 74 6c 65 | 28 63 6f 6e 73 74 20 63 |ateTitle|(const c|
|00002500| 68 61 72 2a 20 74 69 74 | 6c 65 2c 63 6f 6e 73 74 |har* tit|le,const|
|00002510| 20 63 68 61 72 2a 20 6f | 74 69 74 6c 65 2c 63 6f | char* o|title,co|
|00002520| 6e 73 74 20 4b 65 79 20 | 6b 65 79 29 3b 0a 65 78 |nst Key |key);.ex|
|00002530| 74 65 72 6e 20 76 6f 69 | 64 20 46 65 74 63 68 53 |tern voi|d FetchS|
|00002540| 75 62 6a 73 28 63 68 61 | 72 2a 20 73 75 62 6a 62 |ubjs(cha|r* subjb|
|00002550| 75 66 66 65 72 2c 63 6f | 6e 73 74 20 4b 65 79 20 |uffer,co|nst Key |
|00002560| 6b 65 79 29 3b 0a 0a 73 | 74 61 74 69 63 20 42 6f |key);..s|tatic Bo|
|00002570| 6f 6c 65 61 6e 20 44 65 | 6c 65 74 65 43 61 72 64 |olean De|leteCard|
|00002580| 31 28 63 6f 6e 73 74 20 | 4b 65 79 20 64 65 6c 65 |1(const |Key dele|
|00002590| 74 65 6b 65 79 29 0a 7b | 0a 09 43 6f 72 65 49 74 |tekey).{|..CoreIt|
|000025a0| 65 6d 20 69 74 65 6d 3b | 0a 09 69 66 20 28 54 72 |em item;|..if (Tr|
|000025b0| 65 65 2d 3e 53 65 61 72 | 63 68 49 64 28 28 4b 65 |ee->Sear|chId((Ke|
|000025c0| 79 29 64 65 6c 65 74 65 | 6b 65 79 2c 26 69 74 65 |y)delete|key,&ite|
|000025d0| 6d 29 20 26 26 0a 09 20 | 20 20 20 73 74 72 6c 65 |m) &&.. | strle|
|000025e0| 6e 28 64 65 6c 65 74 65 | 6b 65 79 29 20 3d 3d 20 |n(delete|key) == |
|000025f0| 73 74 72 6c 65 6e 28 69 | 74 65 6d 2e 6b 65 79 29 |strlen(i|tem.key)|
|00002600| 29 20 7b 0a 09 09 43 61 | 72 64 52 65 63 6f 72 64 |) {...Ca|rdRecord|
|00002610| 20 72 65 63 28 26 69 74 | 65 6d 2e 64 61 74 61 29 | rec(&it|em.data)|
|00002620| 3b 0a 09 09 55 70 64 61 | 74 65 41 75 74 68 6f 72 |;...Upda|teAuthor|
|00002630| 28 22 22 2c 72 65 63 2d | 3e 61 75 74 68 6f 72 2c |("",rec-|>author,|
|00002640| 69 74 65 6d 2e 6b 65 79 | 29 3b 0a 09 09 55 70 64 |item.key|);...Upd|
|00002650| 61 74 65 54 69 74 6c 65 | 28 22 22 2c 72 65 63 2d |ateTitle|("",rec-|
|00002660| 3e 74 69 74 6c 65 2c 69 | 74 65 6d 2e 6b 65 79 29 |>title,i|tem.key)|
|00002670| 3b 0a 09 09 46 65 74 63 | 68 53 75 62 6a 73 28 53 |;...Fetc|hSubjs(S|
|00002680| 75 62 6a 4c 69 73 74 2c | 64 65 6c 65 74 65 6b 65 |ubjList,|deleteke|
|00002690| 79 29 3b 0a 09 09 55 70 | 64 61 74 65 53 75 62 6a |y);...Up|dateSubj|
|000026a0| 73 28 22 22 2c 53 75 62 | 6a 4c 69 73 74 2c 69 74 |s("",Sub|jList,it|
|000026b0| 65 6d 2e 6b 65 79 29 3b | 0a 09 20 20 20 20 09 54 |em.key);|.. .T|
|000026c0| 72 65 65 2d 3e 44 65 6c | 65 74 65 49 64 28 28 4b |ree->Del|eteId((K|
|000026d0| 65 79 29 64 65 6c 65 74 | 65 6b 65 79 29 3b 0a 09 |ey)delet|ekey);..|
|000026e0| 20 20 20 20 09 72 65 74 | 75 72 6e 20 74 72 75 65 | .ret|urn true|
|000026f0| 3b 0a 09 7d 20 65 6c 73 | 65 20 72 65 74 75 72 6e |;..} els|e return|
|00002700| 20 66 61 6c 73 65 3b 0a | 7d 0a 69 6e 74 20 44 65 | false;.|}.int De|
|00002710| 6c 65 74 65 43 61 72 64 | 28 29 0a 7b 0a 09 4b 65 |leteCard|().{..Ke|
|00002720| 79 20 64 65 6c 65 74 65 | 6b 65 79 3b 0a 09 54 65 |y delete|key;..Te|
|00002730| 72 6d 2d 3e 50 72 6f 6d | 70 74 4c 69 6e 65 28 31 |rm->Prom|ptLine(1|
|00002740| 38 2c 30 2c 22 49 64 20 | 6f 66 20 63 61 72 64 20 |8,0,"Id |of card |
|00002750| 74 6f 20 64 65 6c 65 74 | 65 3a 20 22 2c 64 65 6c |to delet|e: ",del|
|00002760| 65 74 65 6b 65 79 2c 4b | 65 79 53 69 7a 65 29 3b |etekey,K|eySize);|
|00002770| 0a 09 69 66 20 28 21 44 | 65 6c 65 74 65 43 61 72 |..if (!D|eleteCar|
|00002780| 64 31 28 64 65 6c 65 74 | 65 6b 65 79 29 29 20 54 |d1(delet|ekey)) T|
|00002790| 65 72 6d 2d 3e 4d 65 73 | 73 61 67 65 28 22 4e 6f |erm->Mes|sage("No|
|000027a0| 20 53 75 63 68 20 43 61 | 72 64 22 29 3b 0a 09 72 | Such Ca|rd");..r|
|000027b0| 65 74 75 72 6e 28 2d 31 | 29 3b 0a 7d 0a 69 6e 74 |eturn(-1|);.}.int|
|000027c0| 20 44 65 6c 65 74 65 42 | 79 41 75 74 68 6f 72 28 | DeleteB|yAuthor(|
|000027d0| 29 0a 7b 0a 09 4b 65 79 | 20 61 75 74 68 6f 72 3b |).{..Key| author;|
|000027e0| 0a 09 54 65 72 6d 2d 3e | 50 72 6f 6d 70 74 4c 69 |..Term->|PromptLi|
|000027f0| 6e 65 28 31 36 2c 30 2c | 22 41 75 74 68 6f 72 20 |ne(16,0,|"Author |
|00002800| 74 6f 20 64 65 6c 65 74 | 65 20 62 79 3a 20 22 2c |to delet|e by: ",|
|00002810| 61 75 74 68 6f 72 2c 4b | 65 79 53 69 7a 65 29 3b |author,K|eySize);|
|00002820| 0a 09 43 6f 72 65 49 74 | 65 6d 20 69 74 65 6d 3b |..CoreIt|em item;|
|00002830| 0a 09 69 66 20 28 54 72 | 65 65 2d 3e 53 65 61 72 |..if (Tr|ee->Sear|
|00002840| 63 68 41 75 74 68 6f 72 | 28 61 75 74 68 6f 72 2c |chAuthor|(author,|
|00002850| 26 69 74 65 6d 29 20 26 | 26 0a 09 20 20 20 20 73 |&item) &|&.. s|
|00002860| 74 72 6c 65 6e 28 61 75 | 74 68 6f 72 29 20 3d 3d |trlen(au|thor) ==|
|00002870| 20 73 74 72 6c 65 6e 28 | 69 74 65 6d 2e 6b 65 79 | strlen(|item.key|
|00002880| 29 29 20 7b 0a 09 09 73 | 74 61 74 69 63 20 63 68 |)) {...s|tatic ch|
|00002890| 61 72 20 6c 69 6e 65 5b | 36 30 5d 3b 0a 09 09 4c |ar line[|60];...L|
|000028a0| 69 73 74 52 65 63 6f 72 | 64 20 72 65 63 28 26 69 |istRecor|d rec(&i|
|000028b0| 74 65 6d 2e 64 61 74 61 | 29 3b 0a 09 09 69 6e 74 |tem.data|);...int|
|000028c0| 20 69 63 6f 75 6e 74 20 | 3d 20 72 65 63 2e 45 6c | icount |= rec.El|
|000028d0| 65 6d 65 6e 74 43 6f 75 | 6e 74 28 29 3b 0a 09 09 |ementCou|nt();...|
|000028e0| 66 6f 72 20 28 69 6e 74 | 20 69 20 3d 20 30 3b 20 |for (int| i = 0; |
|000028f0| 69 20 3c 20 69 63 6f 75 | 6e 74 3b 69 2b 2b 29 20 |i < icou|nt;i++) |
|00002900| 7b 0a 09 09 09 73 70 72 | 69 6e 74 66 28 6c 69 6e |{....spr|intf(lin|
|00002910| 65 2c 22 44 65 6c 65 74 | 65 20 25 73 3f 22 2c 72 |e,"Delet|e %s?",r|
|00002920| 65 63 5b 69 5d 29 3b 0a | 09 09 09 69 66 20 28 54 |ec[i]);.|...if (T|
|00002930| 65 72 6d 2d 3e 59 6f 72 | 4e 70 28 31 37 2c 30 2c |erm->Yor|Np(17,0,|
|00002940| 6c 69 6e 65 29 29 20 44 | 65 6c 65 74 65 43 61 72 |line)) D|eleteCar|
|00002950| 64 31 28 72 65 63 5b 69 | 5d 29 3b 0a 09 09 7d 0a |d1(rec[i|]);...}.|
|00002960| 09 7d 20 65 6c 73 65 20 | 54 65 72 6d 2d 3e 4d 65 |.} else |Term->Me|
|00002970| 73 73 61 67 65 28 22 4e | 6f 20 73 75 63 68 20 61 |ssage("N|o such a|
|00002980| 75 74 68 6f 72 22 29 3b | 0a 09 72 65 74 75 72 6e |uthor");|..return|
|00002990| 28 2d 31 29 3b 0a 7d 0a | 69 6e 74 20 44 65 6c 65 |(-1);.}.|int Dele|
|000029a0| 74 65 42 79 54 69 74 6c | 65 28 29 0a 7b 0a 09 4b |teByTitl|e().{..K|
|000029b0| 65 79 20 74 69 74 6c 65 | 3b 0a 09 54 65 72 6d 2d |ey title|;..Term-|
|000029c0| 3e 50 72 6f 6d 70 74 4c | 69 6e 65 28 31 36 2c 30 |>PromptL|ine(16,0|
|000029d0| 2c 22 54 69 74 6c 65 20 | 74 6f 20 64 65 6c 65 74 |,"Title |to delet|
|000029e0| 65 20 62 79 3a 20 22 2c | 74 69 74 6c 65 2c 4b 65 |e by: ",|title,Ke|
|000029f0| 79 53 69 7a 65 29 3b 0a | 09 43 6f 72 65 49 74 65 |ySize);.|.CoreIte|
|00002a00| 6d 20 69 74 65 6d 3b 0a | 09 69 66 20 28 54 72 65 |m item;.|.if (Tre|
|00002a10| 65 2d 3e 53 65 61 72 63 | 68 54 69 74 6c 65 28 74 |e->Searc|hTitle(t|
|00002a20| 69 74 6c 65 2c 26 69 74 | 65 6d 29 20 26 26 0a 09 |itle,&it|em) &&..|
|00002a30| 20 20 20 20 73 74 72 6c | 65 6e 28 74 69 74 6c 65 | strl|en(title|
|00002a40| 29 20 3d 3d 20 73 74 72 | 6c 65 6e 28 69 74 65 6d |) == str|len(item|
|00002a50| 2e 6b 65 79 29 29 20 7b | 0a 09 09 73 74 61 74 69 |.key)) {|...stati|
|00002a60| 63 20 63 68 61 72 20 6c | 69 6e 65 5b 36 30 5d 3b |c char l|ine[60];|
|00002a70| 0a 09 09 4c 69 73 74 52 | 65 63 6f 72 64 20 72 65 |...ListR|ecord re|
|00002a80| 63 28 26 69 74 65 6d 2e | 64 61 74 61 29 3b 0a 09 |c(&item.|data);..|
|00002a90| 09 69 6e 74 20 69 63 6f | 75 6e 74 20 3d 20 72 65 |.int ico|unt = re|
|00002aa0| 63 2e 45 6c 65 6d 65 6e | 74 43 6f 75 6e 74 28 29 |c.Elemen|tCount()|
|00002ab0| 3b 0a 09 09 66 6f 72 20 | 28 69 6e 74 20 69 20 3d |;...for |(int i =|
|00002ac0| 20 30 3b 20 69 20 3c 20 | 69 63 6f 75 6e 74 3b 69 | 0; i < |icount;i|
|00002ad0| 2b 2b 29 20 7b 0a 09 09 | 09 73 70 72 69 6e 74 66 |++) {...|.sprintf|
|00002ae0| 28 6c 69 6e 65 2c 22 44 | 65 6c 65 74 65 20 25 73 |(line,"D|elete %s|
|00002af0| 3f 22 2c 72 65 63 5b 69 | 5d 29 3b 0a 09 09 09 69 |?",rec[i|]);....i|
|00002b00| 66 20 28 54 65 72 6d 2d | 3e 59 6f 72 4e 70 28 31 |f (Term-|>YorNp(1|
|00002b10| 37 2c 30 2c 6c 69 6e 65 | 29 29 20 44 65 6c 65 74 |7,0,line|)) Delet|
|00002b20| 65 43 61 72 64 31 28 72 | 65 63 5b 69 5d 29 3b 0a |eCard1(r|ec[i]);.|
|00002b30| 09 09 7d 0a 09 7d 20 65 | 6c 73 65 20 54 65 72 6d |..}..} e|lse Term|
|00002b40| 2d 3e 4d 65 73 73 61 67 | 65 28 22 4e 6f 20 73 75 |->Messag|e("No su|
|00002b50| 63 68 20 74 69 74 6c 65 | 22 29 3b 0a 09 72 65 74 |ch title|");..ret|
|00002b60| 75 72 6e 28 2d 31 29 3b | 0a 7d 0a 69 6e 74 20 44 |urn(-1);|.}.int D|
|00002b70| 65 6c 65 74 65 42 79 53 | 75 62 6a 28 29 0a 7b 0a |eleteByS|ubj().{.|
|00002b80| 09 4b 65 79 20 73 75 62 | 6a 65 63 74 3b 0a 09 54 |.Key sub|ject;..T|
|00002b90| 65 72 6d 2d 3e 50 72 6f | 6d 70 74 4c 69 6e 65 28 |erm->Pro|mptLine(|
|00002ba0| 31 36 2c 30 2c 22 53 75 | 62 6a 65 63 74 20 74 6f |16,0,"Su|bject to|
|00002bb0| 20 64 65 6c 65 74 65 20 | 62 79 3a 20 22 2c 73 75 | delete |by: ",su|
|00002bc0| 62 6a 65 63 74 2c 4b 65 | 79 53 69 7a 65 29 3b 0a |bject,Ke|ySize);.|
|00002bd0| 09 43 6f 72 65 49 74 65 | 6d 20 69 74 65 6d 3b 0a |.CoreIte|m item;.|
|00002be0| 09 69 66 20 28 54 72 65 | 65 2d 3e 53 65 61 72 63 |.if (Tre|e->Searc|
|00002bf0| 68 53 75 62 6a 28 73 75 | 62 6a 65 63 74 2c 26 69 |hSubj(su|bject,&i|
|00002c00| 74 65 6d 29 20 26 26 0a | 09 20 20 20 20 73 74 72 |tem) &&.|. str|
|00002c10| 6c 65 6e 28 73 75 62 6a | 65 63 74 29 20 3d 3d 20 |len(subj|ect) == |
|00002c20| 73 74 72 6c 65 6e 28 69 | 74 65 6d 2e 6b 65 79 29 |strlen(i|tem.key)|
|00002c30| 29 20 7b 0a 09 09 73 74 | 61 74 69 63 20 63 68 61 |) {...st|atic cha|
|00002c40| 72 20 6c 69 6e 65 5b 36 | 30 5d 3b 0a 09 09 4c 69 |r line[6|0];...Li|
|00002c50| 73 74 52 65 63 6f 72 64 | 20 72 65 63 28 26 69 74 |stRecord| rec(&it|
|00002c60| 65 6d 2e 64 61 74 61 29 | 3b 0a 09 09 69 6e 74 20 |em.data)|;...int |
|00002c70| 69 63 6f 75 6e 74 20 3d | 20 72 65 63 2e 45 6c 65 |icount =| rec.Ele|
|00002c80| 6d 65 6e 74 43 6f 75 6e | 74 28 29 3b 0a 09 09 66 |mentCoun|t();...f|
|00002c90| 6f 72 20 28 69 6e 74 20 | 69 20 3d 20 30 3b 20 69 |or (int |i = 0; i|
|00002ca0| 20 3c 20 69 63 6f 75 6e | 74 3b 69 2b 2b 29 20 7b | < icoun|t;i++) {|
|00002cb0| 0a 09 09 09 73 70 72 69 | 6e 74 66 28 6c 69 6e 65 |....spri|ntf(line|
|00002cc0| 2c 22 44 65 6c 65 74 65 | 20 25 73 3f 22 2c 72 65 |,"Delete| %s?",re|
|00002cd0| 63 5b 69 5d 29 3b 0a 09 | 09 09 69 66 20 28 54 65 |c[i]);..|..if (Te|
|00002ce0| 72 6d 2d 3e 59 6f 72 4e | 70 28 31 37 2c 30 2c 6c |rm->YorN|p(17,0,l|
|00002cf0| 69 6e 65 29 29 20 44 65 | 6c 65 74 65 43 61 72 64 |ine)) De|leteCard|
|00002d00| 31 28 72 65 63 5b 69 5d | 29 3b 0a 09 09 7d 0a 09 |1(rec[i]|);...}..|
|00002d10| 7d 20 65 6c 73 65 20 54 | 65 72 6d 2d 3e 4d 65 73 |} else T|erm->Mes|
|00002d20| 73 61 67 65 28 22 4e 6f | 20 73 75 63 68 20 73 75 |sage("No| such su|
|00002d30| 62 6a 65 63 74 22 29 3b | 0a 09 72 65 74 75 72 6e |bject");|..return|
|00002d40| 28 2d 31 29 3b 0a 7d 0a | 0a 0a 00 00 00 00 00 00 |(-1);.}.|........|
|00002d50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002d90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002da0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e00| 45 64 69 74 4c 69 62 72 | 2f 45 64 69 74 43 61 72 |EditLibr|/EditCar|
|00002e10| 64 2e 63 63 00 00 00 00 | 00 00 00 00 00 00 00 00 |d.cc....|........|
|00002e20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002e60| 00 00 00 00 31 30 30 36 | 34 34 20 00 20 31 32 30 |....1006|44 . 120|
|00002e70| 30 35 20 00 20 20 20 31 | 34 34 20 00 20 20 20 20 |05 . 1|44 . |
|00002e80| 20 20 33 32 32 37 31 20 | 20 35 37 34 33 35 36 34 | 32271 | 5743564|
|00002e90| 35 35 37 20 20 31 33 35 | 32 31 00 20 30 00 00 00 |557 135|21. 0...|
|00002ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002eb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ec0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ed0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ef0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f00| 00 75 73 74 61 72 20 20 | 00 68 65 6c 6c 65 72 00 |.ustar |.heller.|
|00002f10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f20| 00 00 00 00 00 00 00 00 | 00 75 73 65 72 73 00 00 |........|.users..|
|00002f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f80| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003000| 2f 2a 20 2d 2a 2d 20 4d | 6f 64 65 3a 20 43 20 2d |/* -*- M|ode: C -|
|00003010| 2a 2d 20 2a 2f 0a 2f 2a | 20 45 64 69 74 43 61 72 |*- */./*| EditCar|
|00003020| 64 2e 63 63 20 2d 20 45 | 64 69 74 20 61 6e 20 65 |d.cc - E|dit an e|
|00003030| 78 69 73 74 69 6e 67 20 | 63 61 72 64 0a 20 2a 20 |xisting |card. * |
|00003040| 43 72 65 61 74 65 64 20 | 62 79 20 52 6f 62 65 72 |Created |by Rober|
|00003050| 74 20 48 65 6c 6c 65 72 | 20 6f 6e 20 57 65 64 20 |t Heller| on Wed |
|00003060| 44 65 63 20 31 31 20 32 | 30 3a 34 31 3a 34 33 20 |Dec 11 2|0:41:43 |
|00003070| 31 39 39 31 0a 20 2a 0a | 20 2a 20 2d 2d 2d 2d 2d |1991. *.| * -----|
|00003080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 20 2a |--------|-----. *|
|000030c0| 20 48 6f 6d 65 20 4c 69 | 62 61 72 69 61 6e 20 62 | Home Li|barian b|
|000030d0| 79 20 44 65 65 70 77 6f | 6f 64 73 20 53 6f 66 74 |y Deepwo|ods Soft|
|000030e0| 77 61 72 65 0a 20 2a 20 | 45 64 69 74 20 61 20 4c |ware. * |Edit a L|
|000030f0| 69 62 72 61 72 69 61 6e | 20 43 61 72 64 20 43 61 |ibrarian| Card Ca|
|00003100| 74 61 6c 6f 67 20 66 69 | 6c 65 0a 20 2a 20 2d 2d |talog fi|le. * --|
|00003110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003150| 0a 20 2a 20 4d 6f 64 69 | 66 69 63 61 74 69 6f 6e |. * Modi|fication|
|00003160| 20 48 69 73 74 6f 72 79 | 3a 0a 20 2a 20 2d 2d 2d | History|:. * ---|
|00003170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0a |--------|-------.|
|000031b0| 20 2a 20 43 6f 6e 74 65 | 6e 74 73 3a 0a 20 2a 20 | * Conte|nts:. * |
|000031c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003200| 2d 2d 0a 20 2a 20 0a 20 | 2a 20 0a 20 2a 20 43 6f |--. * . |* . * Co|
|00003210| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 39 31 |pyright |(c) 1991|
|00003220| 2c 31 39 39 32 20 62 79 | 20 52 6f 62 65 72 74 20 |,1992 by| Robert |
|00003230| 68 65 6c 6c 65 72 20 28 | 44 2f 42 2f 41 20 44 65 |heller (|D/B/A De|
|00003240| 65 70 77 6f 6f 64 73 20 | 53 6f 66 74 77 61 72 65 |epwoods |Software|
|00003250| 29 0a 20 2a 20 20 20 20 | 20 20 20 20 41 6c 6c 20 |). * | All |
|00003260| 52 69 67 68 74 73 20 52 | 65 73 65 72 76 65 64 0a |Rights R|eserved.|
|00003270| 20 2a 20 0a 20 2a 2f 0a | 0a 23 69 6e 63 6c 75 64 | * . */.|.#includ|
|00003280| 65 20 3c 73 74 72 65 61 | 6d 2e 68 3e 0a 23 69 6e |e <strea|m.h>.#in|
|00003290| 63 6c 75 64 65 20 3c 76 | 42 54 72 65 65 2e 68 3e |clude <v|BTree.h>|
|000032a0| 0a 23 69 6e 63 6c 75 64 | 65 20 3c 63 74 79 70 65 |.#includ|e <ctype|
|000032b0| 2e 68 3e 0a 23 69 66 64 | 65 66 20 4d 45 53 53 59 |.h>.#ifd|ef MESSY|
|000032c0| 44 4f 53 0a 23 69 6e 63 | 6c 75 64 65 20 3c 43 61 |DOS.#inc|lude <Ca|
|000032d0| 72 64 52 65 63 2e 68 3e | 0a 23 69 6e 63 6c 75 64 |rdRec.h>|.#includ|
|000032e0| 65 20 3c 4c 69 73 74 52 | 65 63 2e 68 3e 0a 23 65 |e <ListR|ec.h>.#e|
|000032f0| 6c 73 65 0a 23 69 6e 63 | 6c 75 64 65 20 3c 43 61 |lse.#inc|lude <Ca|
|00003300| 72 64 52 65 63 6f 72 64 | 2e 68 3e 0a 23 69 6e 63 |rdRecord|.h>.#inc|
|00003310| 6c 75 64 65 20 3c 4c 69 | 73 74 52 65 63 6f 72 64 |lude <Li|stRecord|
|00003320| 2e 68 3e 0a 23 65 6e 64 | 69 66 0a 23 69 6e 63 6c |.h>.#end|if.#incl|
|00003330| 75 64 65 20 3c 54 65 72 | 6d 69 6e 61 6c 2e 68 3e |ude <Ter|minal.h>|
|00003340| 0a 23 69 66 64 65 66 20 | 4d 45 53 53 59 44 4f 53 |.#ifdef |MESSYDOS|
|00003350| 0a 23 69 6e 63 6c 75 64 | 65 20 3c 43 6d 64 53 63 |.#includ|e <CmdSc|
|00003360| 72 65 6e 2e 68 3e 0a 23 | 65 6c 73 65 0a 23 69 6e |ren.h>.#|else.#in|
|00003370| 63 6c 75 64 65 20 3c 43 | 6f 6d 6d 61 6e 64 53 63 |clude <C|ommandSc|
|00003380| 72 65 65 6e 2e 68 3e 0a | 23 65 6e 64 69 66 0a 23 |reen.h>.|#endif.#|
|00003390| 69 6e 63 6c 75 64 65 20 | 3c 45 64 69 74 46 6f 72 |include |<EditFor|
|000033a0| 6d 2e 68 3e 0a 23 69 6e | 63 6c 75 64 65 20 22 45 |m.h>.#in|clude "E|
|000033b0| 64 69 74 44 65 66 73 2e | 68 22 0a 23 69 6e 63 6c |ditDefs.|h".#incl|
|000033c0| 75 64 65 20 22 45 64 69 | 74 47 6c 6f 62 2e 68 22 |ude "Edi|tGlob.h"|
|000033d0| 0a 0a 0a 63 6f 6e 73 74 | 20 42 75 66 66 53 69 7a |...const| BuffSiz|
|000033e0| 65 20 3d 20 31 30 32 34 | 3b 0a 63 6f 6e 73 74 20 |e = 1024|;.const |
|000033f0| 44 65 73 63 72 53 69 7a | 65 20 3d 20 34 30 39 36 |DescrSiz|e = 4096|
|00003400| 3b 0a 73 74 61 74 69 63 | 20 4b 65 79 20 65 64 69 |;.static| Key edi|
|00003410| 74 6b 65 79 3b 0a 73 74 | 61 74 69 63 20 63 68 61 |tkey;.st|atic cha|
|00003420| 72 20 41 75 74 68 6f 72 | 5b 42 75 66 66 53 69 7a |r Author|[BuffSiz|
|00003430| 65 5d 2c 54 69 74 6c 65 | 5b 42 75 66 66 53 69 7a |e],Title|[BuffSiz|
|00003440| 65 5d 2c 50 75 62 6c 69 | 73 68 65 72 5b 42 75 66 |e],Publi|sher[Buf|
|00003450| 66 53 69 7a 65 5d 2c 0a | 09 20 20 20 20 43 69 74 |fSize],.|. Cit|
|00003460| 79 5b 42 75 66 66 53 69 | 7a 65 5d 2c 44 65 73 63 |y[BuffSi|ze],Desc|
|00003470| 72 69 70 74 69 6f 6e 5b | 44 65 73 63 72 53 69 7a |ription[|DescrSiz|
|00003480| 65 5d 2c 53 75 62 6a 4c | 69 73 74 5b 44 65 73 63 |e],SubjL|ist[Desc|
|00003490| 72 53 69 7a 65 5d 2c 0a | 09 20 20 20 20 4f 72 69 |rSize],.|. Ori|
|000034a0| 67 53 75 62 6a 4c 69 73 | 74 5b 44 65 73 63 72 53 |gSubjLis|t[DescrS|
|000034b0| 69 7a 65 5d 3b 0a 73 74 | 61 74 69 63 20 43 61 72 |ize];.st|atic Car|
|000034c0| 64 20 65 64 69 74 63 61 | 72 64 28 42 6f 6f 6b 2c |d editca|rd(Book,|
|000034d0| 41 75 74 68 6f 72 2c 54 | 69 74 6c 65 2c 50 75 62 |Author,T|itle,Pub|
|000034e0| 6c 69 73 68 65 72 2c 43 | 69 74 79 2c 44 65 73 63 |lisher,C|ity,Desc|
|000034f0| 72 69 70 74 69 6f 6e 2c | 30 2c 30 29 3b 0a 0a 73 |ription,|0,0);..s|
|00003500| 74 61 74 69 63 20 63 68 | 61 72 2a 20 54 79 70 65 |tatic ch|ar* Type|
|00003510| 54 6f 53 74 72 69 6e 67 | 28 76 6f 69 64 2a 20 66 |ToString|(void* f|
|00003520| 29 20 7b 43 61 72 64 54 | 79 70 65 20 63 74 20 3d |) {CardT|ype ct =|
|00003530| 20 2a 28 28 43 61 72 64 | 54 79 70 65 2a 29 66 29 | *((Card|Type*)f)|
|00003540| 3b 72 65 74 75 72 6e 28 | 54 79 70 65 4e 61 6d 65 |;return(|TypeName|
|00003550| 28 63 74 29 29 3b 7d 0a | 73 74 61 74 69 63 20 76 |(ct));}.|static v|
|00003560| 6f 69 64 20 20 53 74 72 | 69 6e 67 54 6f 54 79 70 |oid Str|ingToTyp|
|00003570| 65 28 63 68 61 72 2a 20 | 73 2c 76 6f 69 64 2a 20 |e(char* |s,void* |
|00003580| 66 29 7b 2a 28 28 43 61 | 72 64 54 79 70 65 2a 29 |f){*((Ca|rdType*)|
|00003590| 66 29 20 3d 20 4e 61 6d | 65 54 79 70 65 28 73 29 |f) = Nam|eType(s)|
|000035a0| 3b 7d 0a 73 74 61 74 69 | 63 20 43 61 72 64 2a 20 |;}.stati|c Card* |
|000035b0| 4f 72 69 67 43 61 72 64 | 3b 0a 0a 0a 73 74 61 74 |OrigCard|;...stat|
|000035c0| 69 63 20 42 6f 6f 6c 65 | 61 6e 20 73 74 72 65 71 |ic Boole|an streq|
|000035d0| 70 28 63 6f 6e 73 74 20 | 63 68 61 72 2a 20 73 31 |p(const |char* s1|
|000035e0| 2c 63 6f 6e 73 74 20 63 | 68 61 72 2a 20 73 32 29 |,const c|har* s2)|
|000035f0| 0a 7b 0a 09 72 65 67 69 | 73 74 65 72 20 63 68 61 |.{..regi|ster cha|
|00003600| 72 20 63 31 2c 63 32 3b | 0a 09 64 6f 20 7b 0a 09 |r c1,c2;|..do {..|
|00003610| 09 63 31 20 3d 20 2a 73 | 31 2b 2b 3b 0a 09 09 69 |.c1 = *s|1++;...i|
|00003620| 66 20 28 69 73 6c 6f 77 | 65 72 28 63 31 29 29 20 |f (islow|er(c1)) |
|00003630| 63 31 20 3d 20 74 6f 75 | 70 70 65 72 28 63 31 29 |c1 = tou|pper(c1)|
|00003640| 3b 0a 09 09 63 32 20 3d | 20 2a 73 32 2b 2b 3b 0a |;...c2 =| *s2++;.|
|00003650| 09 09 69 66 20 28 69 73 | 6c 6f 77 65 72 28 63 32 |..if (is|lower(c2|
|00003660| 29 29 20 63 32 20 3d 20 | 74 6f 75 70 70 65 72 28 |)) c2 = |toupper(|
|00003670| 63 32 29 3b 0a 09 09 69 | 66 20 28 63 31 20 21 3d |c2);...i|f (c1 !=|
|00003680| 20 63 32 29 20 72 65 74 | 75 72 6e 28 66 61 6c 73 | c2) ret|urn(fals|
|00003690| 65 29 3b 0a 09 7d 20 77 | 68 69 6c 65 20 28 63 31 |e);..} w|hile (c1|
|000036a0| 20 21 3d 20 30 29 3b 0a | 09 72 65 74 75 72 6e 28 | != 0);.|.return(|
|000036b0| 74 72 75 65 29 3b 0a 7d | 0a 0a 73 74 61 74 69 63 |true);.}|..static|
|000036c0| 20 63 68 61 72 2a 20 52 | 65 61 64 51 75 6f 74 65 | char* R|eadQuote|
|000036d0| 64 53 74 72 69 6e 67 46 | 72 6f 6d 42 75 66 66 65 |dStringF|romBuffe|
|000036e0| 72 28 63 68 61 72 2a 20 | 62 75 66 66 65 72 2c 69 |r(char* |buffer,i|
|000036f0| 6e 74 20 62 75 66 66 73 | 69 7a 65 2c 63 68 61 72 |nt buffs|ize,char|
|00003700| 2a 20 73 74 72 69 6e 67 | 29 0a 7b 0a 09 42 6f 6f |* string|).{..Boo|
|00003710| 6c 65 61 6e 20 69 6e 71 | 75 6f 74 65 20 3d 20 66 |lean inq|uote = f|
|00003720| 61 6c 73 65 3b 0a 0a 09 | 69 66 20 28 73 74 72 69 |alse;...|if (stri|
|00003730| 6e 67 20 3d 3d 20 30 20 | 7c 7c 20 2a 73 74 72 69 |ng == 0 ||| *stri|
|00003740| 6e 67 20 3d 3d 20 30 29 | 20 72 65 74 75 72 6e 28 |ng == 0)| return(|
|00003750| 28 63 68 61 72 2a 29 30 | 29 3b 0a 09 77 68 69 6c |(char*)0|);..whil|
|00003760| 65 20 28 2a 73 74 72 69 | 6e 67 20 21 3d 20 30 20 |e (*stri|ng != 0 |
|00003770| 26 26 20 28 69 6e 71 75 | 6f 74 65 20 7c 7c 20 2a |&& (inqu|ote || *|
|00003780| 73 74 72 69 6e 67 20 21 | 3d 20 27 2c 27 29 29 20 |string !|= ',')) |
|00003790| 7b 0a 09 09 69 66 20 28 | 2a 73 74 72 69 6e 67 20 |{...if (|*string |
|000037a0| 3d 3d 20 27 22 27 29 20 | 69 6e 71 75 6f 74 65 20 |== '"') |inquote |
|000037b0| 3d 20 7e 69 6e 71 75 6f | 74 65 3b 0a 09 09 65 6c |= ~inquo|te;...el|
|000037c0| 73 65 20 69 66 20 28 2a | 73 74 72 69 6e 67 20 3d |se if (*|string =|
|000037d0| 3d 20 27 5c 5c 27 29 20 | 7b 0a 09 09 09 73 74 72 |= '\\') |{....str|
|000037e0| 69 6e 67 2b 2b 3b 0a 09 | 09 09 69 66 20 28 62 75 |ing++;..|..if (bu|
|000037f0| 66 66 73 69 7a 65 20 3e | 20 30 29 20 7b 0a 09 09 |ffsize >| 0) {...|
|00003800| 09 09 2a 62 75 66 66 65 | 72 2b 2b 20 3d 20 2a 73 |..*buffe|r++ = *s|
|00003810| 74 72 69 6e 67 3b 0a 09 | 09 09 09 62 75 66 66 73 |tring;..|...buffs|
|00003820| 69 7a 65 2d 2d 3b 0a 09 | 09 09 7d 0a 09 09 7d 20 |ize--;..|..}...} |
|00003830| 65 6c 73 65 20 69 66 20 | 28 2a 73 74 72 69 6e 67 |else if |(*string|
|00003840| 20 3e 3d 20 27 20 27 29 | 20 7b 0a 09 09 09 69 66 | >= ' ')| {....if|
|00003850| 20 28 62 75 66 66 73 69 | 7a 65 20 3e 20 30 29 20 | (buffsi|ze > 0) |
|00003860| 7b 0a 09 09 09 09 2a 62 | 75 66 66 65 72 2b 2b 20 |{.....*b|uffer++ |
|00003870| 3d 20 2a 73 74 72 69 6e | 67 3b 0a 09 09 09 09 62 |= *strin|g;.....b|
|00003880| 75 66 66 73 69 7a 65 2d | 2d 3b 0a 09 09 09 7d 0a |uffsize-|-;....}.|
|00003890| 09 09 7d 0a 09 09 73 74 | 72 69 6e 67 2b 2b 3b 0a |..}...st|ring++;.|
|000038a0| 09 7d 0a 09 69 66 20 28 | 2a 73 74 72 69 6e 67 20 |.}..if (|*string |
|000038b0| 3d 3d 20 27 2c 27 29 20 | 73 74 72 69 6e 67 2b 2b |== ',') |string++|
|000038c0| 3b 0a 09 2a 62 75 66 66 | 65 72 20 3d 20 30 3b 0a |;..*buff|er = 0;.|
|000038d0| 09 72 65 74 75 72 6e 20 | 73 74 72 69 6e 67 3b 0a |.return |string;.|
|000038e0| 7d 0a 0a 73 74 61 74 69 | 63 20 63 68 61 72 2a 20 |}..stati|c char* |
|000038f0| 6e 65 77 65 6c 65 6d 73 | 5b 35 30 30 5d 3b 0a 76 |newelems|[500];.v|
|00003900| 6f 69 64 20 55 70 64 61 | 74 65 53 75 62 6a 73 28 |oid Upda|teSubjs(|
|00003910| 63 6f 6e 73 74 20 63 68 | 61 72 2a 20 73 75 62 6a |const ch|ar* subj|
|00003920| 73 2c 63 6f 6e 73 74 20 | 63 68 61 72 2a 20 6f 73 |s,const |char* os|
|00003930| 75 62 6a 73 2c 63 6f 6e | 73 74 20 4b 65 79 20 6b |ubjs,con|st Key k|
|00003940| 65 79 29 0a 7b 0a 09 4b | 65 79 20 73 75 62 6a 31 |ey).{..K|ey subj1|
|00003950| 3b 0a 09 4b 65 79 20 73 | 75 62 6a 32 3b 0a 09 63 |;..Key s|ubj2;..c|
|00003960| 68 61 72 2a 20 73 6c 31 | 3b 0a 09 63 68 61 72 2a |har* sl1|;..char*|
|00003970| 20 73 6c 32 3b 0a 0a 09 | 66 6f 72 20 28 73 6c 31 | sl2;...|for (sl1|
|00003980| 20 3d 20 28 63 68 61 72 | 2a 29 6f 73 75 62 6a 73 | = (char|*)osubjs|
|00003990| 3b 28 73 6c 31 20 3d 20 | 52 65 61 64 51 75 6f 74 |;(sl1 = |ReadQuot|
|000039a0| 65 64 53 74 72 69 6e 67 | 46 72 6f 6d 42 75 66 66 |edString|FromBuff|
|000039b0| 65 72 28 28 63 68 61 72 | 2a 29 73 75 62 6a 31 2c |er((char|*)subj1,|
|000039c0| 73 69 7a 65 6f 66 28 73 | 75 62 6a 31 29 2c 73 6c |sizeof(s|ubj1),sl|
|000039d0| 31 29 29 20 21 3d 20 30 | 3b 29 20 7b 0a 09 09 42 |1)) != 0|;) {...B|
|000039e0| 6f 6f 6c 65 61 6e 20 72 | 65 74 61 69 6e 20 3d 20 |oolean r|etain = |
|000039f0| 66 61 6c 73 65 3b 0a 09 | 09 66 6f 72 20 28 73 6c |false;..|.for (sl|
|00003a00| 32 20 3d 20 28 63 68 61 | 72 2a 29 73 75 62 6a 73 |2 = (cha|r*)subjs|
|00003a10| 3b 28 73 6c 32 20 3d 20 | 52 65 61 64 51 75 6f 74 |;(sl2 = |ReadQuot|
|00003a20| 65 64 53 74 72 69 6e 67 | 46 72 6f 6d 42 75 66 66 |edString|FromBuff|
|00003a30| 65 72 28 28 63 68 61 72 | 2a 29 73 75 62 6a 32 2c |er((char|*)subj2,|
|00003a40| 73 69 7a 65 6f 66 28 73 | 75 62 6a 32 29 2c 73 6c |sizeof(s|ubj2),sl|
|00003a50| 32 29 29 20 21 3d 20 30 | 3b 29 20 7b 0a 09 09 09 |2)) != 0|;) {....|
|00003a60| 69 66 20 28 73 74 72 65 | 71 70 28 73 75 62 6a 32 |if (stre|qp(subj2|
|00003a70| 2c 73 75 62 6a 31 29 29 | 20 7b 0a 09 09 09 09 72 |,subj1))| {.....r|
|00003a80| 65 74 61 69 6e 20 3d 20 | 74 72 75 65 3b 0a 09 09 |etain = |true;...|
|00003a90| 09 09 62 72 65 61 6b 3b | 0a 09 09 09 7d 0a 09 09 |..break;|....}...|
|00003aa0| 7d 0a 09 09 69 66 20 28 | 21 72 65 74 61 69 6e 29 |}...if (|!retain)|
|00003ab0| 20 7b 0a 09 09 09 43 6f | 72 65 49 74 65 6d 20 74 | {....Co|reItem t|
|00003ac0| 65 6d 70 3b 0a 09 09 09 | 69 66 20 28 54 72 65 65 |emp;....|if (Tree|
|00003ad0| 2d 3e 53 65 61 72 63 68 | 53 75 62 6a 28 73 75 62 |->Search|Subj(sub|
|00003ae0| 6a 31 2c 26 74 65 6d 70 | 29 29 20 7b 0a 09 09 09 |j1,&temp|)) {....|
|00003af0| 09 4c 69 73 74 52 65 63 | 6f 72 64 20 72 65 63 28 |.ListRec|ord rec(|
|00003b00| 26 74 65 6d 70 2e 64 61 | 74 61 29 3b 0a 09 09 09 |&temp.da|ta);....|
|00003b10| 09 69 6e 74 20 6e 69 74 | 65 6d 73 20 3d 20 72 65 |.int nit|ems = re|
|00003b20| 63 2e 45 6c 65 6d 65 6e | 74 43 6f 75 6e 74 28 29 |c.Elemen|tCount()|
|00003b30| 3b 0a 09 09 09 09 69 6e | 74 20 6f 75 74 69 74 65 |;.....in|t outite|
|00003b40| 6d 73 20 3d 20 30 3b 0a | 09 09 09 09 66 6f 72 20 |ms = 0;.|....for |
|00003b50| 28 69 6e 74 20 69 20 3d | 20 30 3b 20 69 20 3c 20 |(int i =| 0; i < |
|00003b60| 6e 69 74 65 6d 73 3b 20 | 69 2b 2b 29 20 7b 0a 09 |nitems; |i++) {..|
|00003b70| 09 09 09 09 69 66 20 28 | 21 73 74 72 65 71 70 28 |....if (|!streqp(|
|00003b80| 72 65 63 5b 69 5d 2c 6b | 65 79 29 29 20 7b 0a 09 |rec[i],k|ey)) {..|
|00003b90| 09 09 09 09 09 6e 65 77 | 65 6c 65 6d 73 5b 6f 75 |.....new|elems[ou|
|00003ba0| 74 69 74 65 6d 73 2b 2b | 5d 20 3d 20 72 65 63 5b |titems++|] = rec[|
|00003bb0| 69 5d 3b 0a 09 09 09 09 | 09 7d 0a 09 09 09 09 7d |i];.....|.}.....}|
|00003bc0| 0a 09 09 09 09 69 66 20 | 28 6f 75 74 69 74 65 6d |.....if |(outitem|
|00003bd0| 73 20 3d 3d 20 30 29 20 | 54 72 65 65 2d 3e 44 65 |s == 0) |Tree->De|
|00003be0| 6c 65 74 65 53 75 62 6a | 28 73 75 62 6a 31 29 3b |leteSubj|(subj1);|
|00003bf0| 0a 09 09 09 09 65 6c 73 | 65 20 7b 0a 09 09 09 09 |.....els|e {.....|
|00003c00| 09 4c 69 73 74 52 65 63 | 6f 72 64 20 6e 65 77 72 |.ListRec|ord newr|
|00003c10| 65 63 28 6f 75 74 69 74 | 65 6d 73 2c 6e 65 77 65 |ec(outit|ems,newe|
|00003c20| 6c 65 6d 73 29 3b 0a 09 | 09 09 09 09 52 65 63 6f |lems);..|....Reco|
|00003c30| 72 64 20 72 61 77 72 65 | 63 20 3d 20 6e 65 77 72 |rd rawre|c = newr|
|00003c40| 65 63 3b 0a 09 09 09 09 | 09 54 72 65 65 2d 3e 49 |ec;.....|.Tree->I|
|00003c50| 6e 73 65 72 74 53 75 62 | 6a 28 73 75 62 6a 31 2c |nsertSub|j(subj1,|
|00003c60| 26 72 61 77 72 65 63 29 | 3b 0a 09 09 09 09 7d 0a |&rawrec)|;.....}.|
|00003c70| 09 09 09 7d 0a 09 09 7d | 0a 09 7d 0a 09 66 6f 72 |...}...}|..}..for|
|00003c80| 20 28 73 6c 31 20 3d 20 | 28 63 68 61 72 2a 29 73 | (sl1 = |(char*)s|
|00003c90| 75 62 6a 73 3b 28 73 6c | 31 20 3d 20 52 65 61 64 |ubjs;(sl|1 = Read|
|00003ca0| 51 75 6f 74 65 64 53 74 | 72 69 6e 67 46 72 6f 6d |QuotedSt|ringFrom|
|00003cb0| 42 75 66 66 65 72 28 28 | 63 68 61 72 2a 29 73 75 |Buffer((|char*)su|
|00003cc0| 62 6a 31 2c 73 69 7a 65 | 6f 66 28 73 75 62 6a 31 |bj1,size|of(subj1|
|00003cd0| 29 2c 73 6c 31 29 29 20 | 21 3d 20 30 3b 29 20 7b |),sl1)) |!= 0;) {|
|00003ce0| 0a 09 09 42 6f 6f 6c 65 | 61 6e 20 61 64 64 6e 65 |...Boole|an addne|
|00003cf0| 77 20 3d 20 74 72 75 65 | 3b 0a 09 09 66 6f 72 20 |w = true|;...for |
|00003d00| 28 73 6c 32 20 3d 20 28 | 63 68 61 72 2a 29 6f 73 |(sl2 = (|char*)os|
|00003d10| 75 62 6a 73 3b 28 73 6c | 32 20 3d 20 52 65 61 64 |ubjs;(sl|2 = Read|
|00003d20| 51 75 6f 74 65 64 53 74 | 72 69 6e 67 46 72 6f 6d |QuotedSt|ringFrom|
|00003d30| 42 75 66 66 65 72 28 28 | 63 68 61 72 2a 29 73 75 |Buffer((|char*)su|
|00003d40| 62 6a 32 2c 73 69 7a 65 | 6f 66 28 73 75 62 6a 32 |bj2,size|of(subj2|
|00003d50| 29 2c 73 6c 32 29 29 20 | 21 3d 20 30 3b 29 20 7b |),sl2)) |!= 0;) {|
|00003d60| 0a 09 09 09 69 66 20 28 | 73 74 72 65 71 70 28 73 |....if (|streqp(s|
|00003d70| 75 62 6a 32 2c 73 75 62 | 6a 31 29 29 20 7b 0a 09 |ubj2,sub|j1)) {..|
|00003d80| 09 09 09 61 64 64 6e 65 | 77 20 3d 20 66 61 6c 73 |...addne|w = fals|
|00003d90| 65 3b 0a 09 09 09 09 62 | 72 65 61 6b 3b 0a 09 09 |e;.....b|reak;...|
|00003da0| 09 7d 0a 09 09 7d 0a 09 | 09 69 66 20 28 61 64 64 |.}...}..|.if (add|
|00003db0| 6e 65 77 29 20 7b 0a 09 | 09 09 43 6f 72 65 49 74 |new) {..|..CoreIt|
|00003dc0| 65 6d 20 74 65 6d 70 3b | 0a 09 09 09 69 66 20 28 |em temp;|....if (|
|00003dd0| 54 72 65 65 2d 3e 53 65 | 61 72 63 68 53 75 62 6a |Tree->Se|archSubj|
|00003de0| 28 73 75 62 6a 31 2c 26 | 74 65 6d 70 29 29 20 7b |(subj1,&|temp)) {|
|00003df0| 0a 09 09 09 09 4c 69 73 | 74 52 65 63 6f 72 64 20 |.....Lis|tRecord |
|00003e00| 72 65 63 28 26 74 65 6d | 70 2e 64 61 74 61 29 3b |rec(&tem|p.data);|
|00003e10| 0a 09 09 09 09 69 6e 74 | 20 6e 69 74 65 6d 73 20 |.....int| nitems |
|00003e20| 3d 20 72 65 63 2e 45 6c | 65 6d 65 6e 74 43 6f 75 |= rec.El|ementCou|
|00003e30| 6e 74 28 29 3b 0a 09 09 | 09 09 69 6e 74 20 6f 75 |nt();...|..int ou|
|00003e40| 74 69 74 65 6d 73 20 3d | 20 30 3b 0a 09 09 09 09 |titems =| 0;.....|
|00003e50| 66 6f 72 20 28 69 6e 74 | 20 69 20 3d 20 30 3b 20 |for (int| i = 0; |
|00003e60| 69 20 3c 20 6e 69 74 65 | 6d 73 3b 20 69 2b 2b 29 |i < nite|ms; i++)|
|00003e70| 20 7b 0a 09 09 09 09 09 | 69 66 20 28 21 73 74 72 | {......|if (!str|
|00003e80| 65 71 70 28 72 65 63 5b | 69 5d 2c 6b 65 79 29 29 |eqp(rec[|i],key))|
|00003e90| 20 7b 0a 09 09 09 09 09 | 09 6e 65 77 65 6c 65 6d | {......|.newelem|
|00003ea0| 73 5b 6f 75 74 69 74 65 | 6d 73 2b 2b 5d 20 3d 20 |s[outite|ms++] = |
|00003eb0| 72 65 63 5b 69 5d 3b 0a | 09 09 09 09 09 7d 0a 09 |rec[i];.|.....}..|
|00003ec0| 09 09 09 7d 0a 09 09 09 | 09 6e 65 77 65 6c 65 6d |...}....|.newelem|
|00003ed0| 73 5b 6f 75 74 69 74 65 | 6d 73 2b 2b 5d 20 3d 20 |s[outite|ms++] = |
|00003ee0| 28 63 68 61 72 2a 29 6b | 65 79 3b 0a 09 09 09 09 |(char*)k|ey;.....|
|00003ef0| 4c 69 73 74 52 65 63 6f | 72 64 20 6e 65 77 72 65 |ListReco|rd newre|
|00003f00| 63 28 6f 75 74 69 74 65 | 6d 73 2c 6e 65 77 65 6c |c(outite|ms,newel|
|00003f10| 65 6d 73 29 3b 0a 09 09 | 09 09 52 65 63 6f 72 64 |ems);...|..Record|
|00003f20| 20 72 61 77 72 65 63 20 | 3d 20 6e 65 77 72 65 63 | rawrec |= newrec|
|00003f30| 3b 0a 09 09 09 09 54 72 | 65 65 2d 3e 49 6e 73 65 |;.....Tr|ee->Inse|
|00003f40| 72 74 53 75 62 6a 28 73 | 75 62 6a 31 2c 26 72 61 |rtSubj(s|ubj1,&ra|
|00003f50| 77 72 65 63 29 3b 0a 09 | 09 09 7d 20 65 6c 73 65 |wrec);..|..} else|
|00003f60| 20 7b 0a 09 09 09 09 6e | 65 77 65 6c 65 6d 73 5b | {.....n|ewelems[|
|00003f70| 30 5d 20 3d 20 28 63 68 | 61 72 2a 29 6b 65 79 3b |0] = (ch|ar*)key;|
|00003f80| 0a 09 09 09 09 4c 69 73 | 74 52 65 63 6f 72 64 20 |.....Lis|tRecord |
|00003f90| 6e 65 77 72 65 63 28 31 | 2c 6e 65 77 65 6c 65 6d |newrec(1|,newelem|
|00003fa0| 73 29 3b 0a 09 09 09 09 | 52 65 63 6f 72 64 20 72 |s);.....|Record r|
|00003fb0| 61 77 72 65 63 20 3d 20 | 6e 65 77 72 65 63 3b 0a |awrec = |newrec;.|
|00003fc0| 09 09 09 09 54 72 65 65 | 2d 3e 49 6e 73 65 72 74 |....Tree|->Insert|
|00003fd0| 53 75 62 6a 28 73 75 62 | 6a 31 2c 26 72 61 77 72 |Subj(sub|j1,&rawr|
|00003fe0| 65 63 29 3b 0a 09 09 09 | 7d 0a 09 09 7d 0a 09 7d |ec);....|}...}..}|
|00003ff0| 0a 7d 0a 0a 76 6f 69 64 | 20 55 70 64 61 74 65 41 |.}..void| UpdateA|
|00004000| 75 74 68 6f 72 28 63 6f | 6e 73 74 20 63 68 61 72 |uthor(co|nst char|
|00004010| 2a 20 61 75 74 68 2c 63 | 6f 6e 73 74 20 63 68 61 |* auth,c|onst cha|
|00004020| 72 2a 20 6f 61 75 74 68 | 2c 63 6f 6e 73 74 20 4b |r* oauth|,const K|
|00004030| 65 79 20 6b 65 79 29 0a | 7b 0a 09 4b 65 79 20 61 |ey key).|{..Key a|
|00004040| 75 74 68 6b 65 79 3b 0a | 09 4b 65 79 20 6f 61 75 |uthkey;.|.Key oau|
|00004050| 74 68 6b 65 79 3b 0a 09 | 73 74 72 6e 63 70 79 28 |thkey;..|strncpy(|
|00004060| 61 75 74 68 6b 65 79 2c | 61 75 74 68 2c 4b 65 79 |authkey,|auth,Key|
|00004070| 53 69 7a 65 29 3b 0a 09 | 61 75 74 68 6b 65 79 5b |Size);..|authkey[|
|00004080| 4b 65 79 53 69 7a 65 2d | 31 5d 20 3d 20 30 3b 0a |KeySize-|1] = 0;.|
|00004090| 09 73 74 72 6e 63 70 79 | 28 6f 61 75 74 68 6b 65 |.strncpy|(oauthke|
|000040a0| 79 2c 6f 61 75 74 68 2c | 4b 65 79 53 69 7a 65 29 |y,oauth,|KeySize)|
|000040b0| 3b 0a 09 6f 61 75 74 68 | 6b 65 79 5b 4b 65 79 53 |;..oauth|key[KeyS|
|000040c0| 69 7a 65 2d 31 5d 20 3d | 20 30 3b 0a 09 2f 2f 63 |ize-1] =| 0;..//c|
|000040d0| 65 72 72 20 3c 3c 20 22 | 2a 2a 2a 20 49 6e 20 55 |err << "|*** In U|
|000040e0| 70 64 61 74 65 41 75 74 | 68 6f 72 3a 20 61 75 74 |pdateAut|hor: aut|
|000040f0| 68 6b 65 79 20 3d 20 27 | 22 20 3c 3c 20 61 75 74 |hkey = '|" << aut|
|00004100| 68 6b 65 79 20 3c 3c 20 | 22 27 2c 20 6f 61 75 74 |hkey << |"', oaut|
|00004110| 68 6b 65 79 20 3d 20 27 | 22 20 3c 3c 20 6f 61 75 |hkey = '|" << oau|
|00004120| 74 68 6b 65 79 20 20 3c | 3c 20 22 27 5c 6e 22 3b |thkey <|< "'\n";|
|00004130| 0a 09 69 66 20 28 21 73 | 74 72 65 71 70 28 61 75 |..if (!s|treqp(au|
|00004140| 74 68 6b 65 79 2c 6f 61 | 75 74 68 6b 65 79 29 29 |thkey,oa|uthkey))|
|00004150| 20 7b 0a 09 09 43 6f 72 | 65 49 74 65 6d 20 74 65 | {...Cor|eItem te|
|00004160| 6d 70 3b 0a 09 09 2f 2f | 63 65 72 72 20 3c 3c 20 |mp;...//|cerr << |
|00004170| 22 41 75 74 68 6f 72 20 | 63 68 61 6e 67 65 64 2c |"Author |changed,|
|00004180| 20 61 62 6f 75 74 20 74 | 6f 20 75 70 64 61 74 65 | about t|o update|
|00004190| 20 6f 6c 64 20 61 75 74 | 68 6f 72 5c 6e 22 3b 0a | old aut|hor\n";.|
|000041a0| 09 09 69 66 20 28 54 72 | 65 65 2d 3e 53 65 61 72 |..if (Tr|ee->Sear|
|000041b0| 63 68 41 75 74 68 6f 72 | 28 6f 61 75 74 68 6b 65 |chAuthor|(oauthke|
|000041c0| 79 2c 26 74 65 6d 70 29 | 20 26 26 0a 09 09 20 20 |y,&temp)| &&... |
|000041d0| 20 20 73 74 72 65 71 70 | 28 6f 61 75 74 68 6b 65 | streqp|(oauthke|
|000041e0| 79 2c 74 65 6d 70 2e 6b | 65 79 29 29 20 7b 0a 09 |y,temp.k|ey)) {..|
|000041f0| 09 20 20 20 20 09 2f 2f | 63 65 72 72 20 3c 3c 20 |. .//|cerr << |
|00004200| 22 55 70 64 61 74 69 6e | 67 20 6f 6c 64 20 61 75 |"Updatin|g old au|
|00004210| 74 68 6f 72 2e 2e 2e 5c | 6e 22 3b 0a 09 09 09 4c |thor...\|n";....L|
|00004220| 69 73 74 52 65 63 6f 72 | 64 20 72 65 63 28 26 74 |istRecor|d rec(&t|
|00004230| 65 6d 70 2e 64 61 74 61 | 29 3b 0a 09 09 09 69 6e |emp.data|);....in|
|00004240| 74 20 6e 69 74 65 6d 73 | 20 3d 20 72 65 63 2e 45 |t nitems| = rec.E|
|00004250| 6c 65 6d 65 6e 74 43 6f | 75 6e 74 28 29 3b 0a 09 |lementCo|unt();..|
|00004260| 09 09 69 6e 74 20 6f 75 | 74 69 74 65 6d 73 20 3d |..int ou|titems =|
|00004270| 20 30 3b 0a 09 09 09 66 | 6f 72 20 28 69 6e 74 20 | 0;....f|or (int |
|00004280| 69 20 3d 20 30 3b 20 69 | 20 3c 20 6e 69 74 65 6d |i = 0; i| < nitem|
|00004290| 73 3b 20 69 2b 2b 29 20 | 7b 0a 09 09 09 09 69 66 |s; i++) |{.....if|
|000042a0| 20 28 21 73 74 72 65 71 | 70 28 72 65 63 5b 69 5d | (!streq|p(rec[i]|
|000042b0| 2c 6b 65 79 29 29 20 7b | 0a 09 09 09 09 09 6e 65 |,key)) {|......ne|
|000042c0| 77 65 6c 65 6d 73 5b 6f | 75 74 69 74 65 6d 73 2b |welems[o|utitems+|
|000042d0| 2b 5d 20 3d 20 72 65 63 | 5b 69 5d 3b 0a 09 09 09 |+] = rec|[i];....|
|000042e0| 09 7d 0a 09 09 09 7d 0a | 09 09 09 69 66 20 28 6f |.}....}.|...if (o|
|000042f0| 75 74 69 74 65 6d 73 20 | 3d 3d 20 30 29 20 54 72 |utitems |== 0) Tr|
|00004300| 65 65 2d 3e 44 65 6c 65 | 74 65 41 75 74 68 6f 72 |ee->Dele|teAuthor|
|00004310| 28 6f 61 75 74 68 6b 65 | 79 29 3b 0a 09 09 09 65 |(oauthke|y);....e|
|00004320| 6c 73 65 20 7b 0a 09 09 | 09 09 4c 69 73 74 52 65 |lse {...|..ListRe|
|00004330| 63 6f 72 64 20 6e 65 77 | 72 65 63 28 6f 75 74 69 |cord new|rec(outi|
|00004340| 74 65 6d 73 2c 6e 65 77 | 65 6c 65 6d 73 29 3b 0a |tems,new|elems);.|
|00004350| 09 09 09 09 52 65 63 6f | 72 64 20 72 61 77 72 65 |....Reco|rd rawre|
|00004360| 63 20 3d 20 6e 65 77 72 | 65 63 3b 0a 09 09 09 09 |c = newr|ec;.....|
|00004370| 54 72 65 65 2d 3e 49 6e | 73 65 72 74 41 75 74 68 |Tree->In|sertAuth|
|00004380| 6f 72 28 6f 61 75 74 68 | 6b 65 79 2c 26 72 61 77 |or(oauth|key,&raw|
|00004390| 72 65 63 29 3b 0a 09 09 | 09 7d 0a 09 09 09 2f 2f |rec);...|.}....//|
|000043a0| 63 65 72 72 20 3c 3c 20 | 22 4f 6c 64 20 61 75 74 |cerr << |"Old aut|
|000043b0| 68 6f 72 20 75 70 64 61 | 74 65 64 2e 2e 2e 5c 6e |hor upda|ted...\n|
|000043c0| 22 3b 0a 09 09 7d 0a 09 | 09 2f 2f 63 65 72 72 20 |";...}..|.//cerr |
|000043d0| 3c 3c 20 22 41 62 6f 75 | 74 20 74 6f 20 66 65 74 |<< "Abou|t to fet|
|000043e0| 63 68 20 6e 65 77 20 61 | 75 74 68 6f 72 20 72 65 |ch new a|uthor re|
|000043f0| 63 6f 72 64 5c 6e 22 3b | 0a 09 09 69 66 20 28 54 |cord\n";|...if (T|
|00004400| 72 65 65 2d 3e 53 65 61 | 72 63 68 41 75 74 68 6f |ree->Sea|rchAutho|
|00004410| 72 28 61 75 74 68 6b 65 | 79 2c 26 74 65 6d 70 29 |r(authke|y,&temp)|
|00004420| 20 26 26 0a 09 09 20 20 | 20 20 73 74 72 65 71 70 | &&... | streqp|
|00004430| 28 61 75 74 68 6b 65 79 | 2c 74 65 6d 70 2e 6b 65 |(authkey|,temp.ke|
|00004440| 79 29 29 20 7b 0a 09 09 | 20 20 20 20 09 2f 2f 63 |y)) {...| .//c|
|00004450| 65 72 72 20 3c 3c 20 22 | 4e 65 77 20 61 75 74 68 |err << "|New auth|
|00004460| 6f 72 20 72 65 63 6f 72 | 64 20 66 65 74 63 68 65 |or recor|d fetche|
|00004470| 64 2c 20 61 62 6f 75 74 | 20 74 6f 20 75 70 64 61 |d, about| to upda|
|00004480| 74 65 5c 6e 22 3b 0a 09 | 09 09 4c 69 73 74 52 65 |te\n";..|..ListRe|
|00004490| 63 6f 72 64 20 72 65 63 | 28 26 74 65 6d 70 2e 64 |cord rec|(&temp.d|
|000044a0| 61 74 61 29 3b 0a 09 09 | 09 69 6e 74 20 6e 69 74 |ata);...|.int nit|
|000044b0| 65 6d 73 20 3d 20 72 65 | 63 2e 45 6c 65 6d 65 6e |ems = re|c.Elemen|
|000044c0| 74 43 6f 75 6e 74 28 29 | 3b 0a 09 09 09 69 6e 74 |tCount()|;....int|
|000044d0| 20 6f 75 74 69 74 65 6d | 73 20 3d 20 30 3b 0a 09 | outitem|s = 0;..|
|000044e0| 09 09 66 6f 72 20 28 69 | 6e 74 20 69 20 3d 20 30 |..for (i|nt i = 0|
|000044f0| 3b 20 69 20 3c 20 6e 69 | 74 65 6d 73 3b 20 69 2b |; i < ni|tems; i+|
|00004500| 2b 29 20 7b 0a 09 09 09 | 09 69 66 20 28 21 73 74 |+) {....|.if (!st|
|00004510| 72 65 71 70 28 72 65 63 | 5b 69 5d 2c 6b 65 79 29 |reqp(rec|[i],key)|
|00004520| 29 20 7b 0a 09 09 09 09 | 09 6e 65 77 65 6c 65 6d |) {.....|.newelem|
|00004530| 73 5b 6f 75 74 69 74 65 | 6d 73 2b 2b 5d 20 3d 20 |s[outite|ms++] = |
|00004540| 72 65 63 5b 69 5d 3b 0a | 09 09 09 09 7d 0a 09 09 |rec[i];.|....}...|
|00004550| 09 7d 0a 09 09 09 6e 65 | 77 65 6c 65 6d 73 5b 6f |.}....ne|welems[o|
|00004560| 75 74 69 74 65 6d 73 2b | 2b 5d 20 3d 20 28 63 68 |utitems+|+] = (ch|
|00004570| 61 72 2a 29 6b 65 79 3b | 0a 09 09 09 4c 69 73 74 |ar*)key;|....List|
|00004580| 52 65 63 6f 72 64 20 6e | 65 77 72 65 63 28 6f 75 |Record n|ewrec(ou|
|00004590| 74 69 74 65 6d 73 2c 6e | 65 77 65 6c 65 6d 73 29 |titems,n|ewelems)|
|000045a0| 3b 0a 09 09 09 52 65 63 | 6f 72 64 20 72 61 77 72 |;....Rec|ord rawr|
|000045b0| 65 63 20 3d 20 6e 65 77 | 72 65 63 3b 0a 09 09 09 |ec = new|rec;....|
|000045c0| 2f 2f 63 65 72 72 20 3c | 3c 20 22 49 6e 73 65 72 |//cerr <|< "Inser|
|000045d0| 74 69 6e 67 20 6e 65 77 | 20 72 65 63 6f 72 64 20 |ting new| record |
|000045e0| 66 6f 72 20 6e 65 77 20 | 61 75 74 68 6f 72 2e 2e |for new |author..|
|000045f0| 2e 5c 6e 22 3b 0a 09 09 | 09 54 72 65 65 2d 3e 49 |.\n";...|.Tree->I|
|00004600| 6e 73 65 72 74 41 75 74 | 68 6f 72 28 61 75 74 68 |nsertAut|hor(auth|
|00004610| 6b 65 79 2c 26 72 61 77 | 72 65 63 29 3b 0a 09 09 |key,&raw|rec);...|
|00004620| 7d 20 65 6c 73 65 20 69 | 66 20 28 61 75 74 68 6b |} else i|f (authk|
|00004630| 65 79 5b 30 5d 20 21 3d | 20 30 29 20 7b 0a 09 09 |ey[0] !=| 0) {...|
|00004640| 09 2f 2f 63 65 72 72 20 | 3c 3c 20 22 43 72 65 61 |.//cerr |<< "Crea|
|00004650| 74 69 6e 67 20 6e 65 77 | 20 72 65 63 6f 72 64 20 |ting new| record |
|00004660| 66 6f 72 20 6e 65 77 20 | 61 75 74 68 6f 72 2e 2e |for new |author..|
|00004670| 2e 5c 6e 22 3b 0a 09 09 | 09 6e 65 77 65 6c 65 6d |.\n";...|.newelem|
|00004680| 73 5b 30 5d 20 3d 20 28 | 63 68 61 72 2a 29 6b 65 |s[0] = (|char*)ke|
|00004690| 79 3b 0a 09 09 09 4c 69 | 73 74 52 65 63 6f 72 64 |y;....Li|stRecord|
|000046a0| 20 6e 65 77 72 65 63 28 | 31 2c 6e 65 77 65 6c 65 | newrec(|1,newele|
|000046b0| 6d 73 29 3b 0a 09 09 09 | 52 65 63 6f 72 64 20 72 |ms);....|Record r|
|000046c0| 61 77 72 65 63 20 3d 20 | 6e 65 77 72 65 63 3b 0a |awrec = |newrec;.|
|000046d0| 09 09 09 54 72 65 65 2d | 3e 49 6e 73 65 72 74 41 |...Tree-|>InsertA|
|000046e0| 75 74 68 6f 72 28 61 75 | 74 68 6b 65 79 2c 26 72 |uthor(au|thkey,&r|
|000046f0| 61 77 72 65 63 29 3b 0a | 09 09 7d 0a 09 7d 0a 7d |awrec);.|..}..}.}|
|00004700| 0a 0a 76 6f 69 64 20 55 | 70 64 61 74 65 54 69 74 |..void U|pdateTit|
|00004710| 6c 65 28 63 6f 6e 73 74 | 20 63 68 61 72 2a 20 74 |le(const| char* t|
|00004720| 69 74 6c 65 2c 63 6f 6e | 73 74 20 63 68 61 72 2a |itle,con|st char*|
|00004730| 20 6f 74 69 74 6c 65 2c | 63 6f 6e 73 74 20 4b 65 | otitle,|const Ke|
|00004740| 79 20 6b 65 79 29 0a 7b | 0a 09 4b 65 79 20 74 69 |y key).{|..Key ti|
|00004750| 74 6c 65 6b 65 79 3b 0a | 09 4b 65 79 20 6f 74 69 |tlekey;.|.Key oti|
|00004760| 74 6c 65 6b 65 79 3b 0a | 09 73 74 72 6e 63 70 79 |tlekey;.|.strncpy|
|00004770| 28 74 69 74 6c 65 6b 65 | 79 2c 74 69 74 6c 65 2c |(titleke|y,title,|
|00004780| 4b 65 79 53 69 7a 65 29 | 3b 0a 09 74 69 74 6c 65 |KeySize)|;..title|
|00004790| 6b 65 79 5b 4b 65 79 53 | 69 7a 65 2d 31 5d 20 3d |key[KeyS|ize-1] =|
|000047a0| 20 30 3b 0a 09 73 74 72 | 6e 63 70 79 28 6f 74 69 | 0;..str|ncpy(oti|
|000047b0| 74 6c 65 6b 65 79 2c 6f | 74 69 74 6c 65 2c 4b 65 |tlekey,o|title,Ke|
|000047c0| 79 53 69 7a 65 29 3b 0a | 09 6f 74 69 74 6c 65 6b |ySize);.|.otitlek|
|000047d0| 65 79 5b 4b 65 79 53 69 | 7a 65 2d 31 5d 20 3d 20 |ey[KeySi|ze-1] = |
|000047e0| 30 3b 0a 09 2f 2f 63 65 | 72 72 20 3c 3c 20 22 2a |0;..//ce|rr << "*|
|000047f0| 2a 2a 20 49 6e 20 55 70 | 64 61 74 65 54 69 74 6c |** In Up|dateTitl|
|00004800| 65 3a 20 74 69 74 6c 65 | 6b 65 79 20 3d 20 27 22 |e: title|key = '"|
|00004810| 20 3c 3c 20 74 69 74 6c | 65 6b 65 79 20 3c 3c 20 | << titl|ekey << |
|00004820| 22 27 2c 20 6f 74 69 74 | 6c 65 6b 65 79 20 3d 20 |"', otit|lekey = |
|00004830| 27 22 20 3c 3c 20 6f 74 | 69 74 6c 65 6b 65 79 20 |'" << ot|itlekey |
|00004840| 20 3c 3c 20 22 27 5c 6e | 22 3b 0a 09 69 66 20 28 | << "'\n|";..if (|
|00004850| 21 73 74 72 65 71 70 28 | 74 69 74 6c 65 6b 65 79 |!streqp(|titlekey|
|00004860| 2c 6f 74 69 74 6c 65 6b | 65 79 29 29 20 7b 0a 09 |,otitlek|ey)) {..|
|00004870| 09 43 6f 72 65 49 74 65 | 6d 20 74 65 6d 70 3b 0a |.CoreIte|m temp;.|
|00004880| 09 09 69 66 20 28 54 72 | 65 65 2d 3e 53 65 61 72 |..if (Tr|ee->Sear|
|00004890| 63 68 54 69 74 6c 65 28 | 6f 74 69 74 6c 65 6b 65 |chTitle(|otitleke|
|000048a0| 79 2c 26 74 65 6d 70 29 | 20 26 26 0a 09 09 20 20 |y,&temp)| &&... |
|000048b0| 20 20 73 74 72 65 71 70 | 28 6f 74 69 74 6c 65 6b | streqp|(otitlek|
|000048c0| 65 79 2c 74 65 6d 70 2e | 6b 65 79 29 29 20 7b 0a |ey,temp.|key)) {.|
|000048d0| 09 09 09 4c 69 73 74 52 | 65 63 6f 72 64 20 72 65 |...ListR|ecord re|
|000048e0| 63 28 26 74 65 6d 70 2e | 64 61 74 61 29 3b 0a 09 |c(&temp.|data);..|
|000048f0| 09 09 69 6e 74 20 6e 69 | 74 65 6d 73 20 3d 20 72 |..int ni|tems = r|
|00004900| 65 63 2e 45 6c 65 6d 65 | 6e 74 43 6f 75 6e 74 28 |ec.Eleme|ntCount(|
|00004910| 29 3b 0a 09 09 09 69 6e | 74 20 6f 75 74 69 74 65 |);....in|t outite|
|00004920| 6d 73 20 3d 20 30 3b 0a | 09 09 09 66 6f 72 20 28 |ms = 0;.|...for (|
|00004930| 69 6e 74 20 69 20 3d 20 | 30 3b 20 69 20 3c 20 6e |int i = |0; i < n|
|00004940| 69 74 65 6d 73 3b 20 69 | 2b 2b 29 20 7b 0a 09 09 |items; i|++) {...|
|00004950| 09 09 69 66 20 28 21 73 | 74 72 65 71 70 28 72 65 |..if (!s|treqp(re|
|00004960| 63 5b 69 5d 2c 6b 65 79 | 29 29 20 7b 0a 09 09 09 |c[i],key|)) {....|
|00004970| 09 09 6e 65 77 65 6c 65 | 6d 73 5b 6f 75 74 69 74 |..newele|ms[outit|
|00004980| 65 6d 73 2b 2b 5d 20 3d | 20 72 65 63 5b 69 5d 3b |ems++] =| rec[i];|
|00004990| 0a 09 09 09 09 7d 0a 09 | 09 09 7d 0a 09 09 09 69 |.....}..|..}....i|
|000049a0| 66 20 28 6f 75 74 69 74 | 65 6d 73 20 3d 3d 20 30 |f (outit|ems == 0|
|000049b0| 29 20 54 72 65 65 2d 3e | 44 65 6c 65 74 65 54 69 |) Tree->|DeleteTi|
|000049c0| 74 6c 65 28 6f 74 69 74 | 6c 65 6b 65 79 29 3b 0a |tle(otit|lekey);.|
|000049d0| 09 09 09 65 6c 73 65 20 | 7b 0a 09 09 09 09 4c 69 |...else |{.....Li|
|000049e0| 73 74 52 65 63 6f 72 64 | 20 6e 65 77 72 65 63 28 |stRecord| newrec(|
|000049f0| 6f 75 74 69 74 65 6d 73 | 2c 6e 65 77 65 6c 65 6d |outitems|,newelem|
|00004a00| 73 29 3b 0a 09 09 09 09 | 52 65 63 6f 72 64 20 72 |s);.....|Record r|
|00004a10| 61 77 72 65 63 20 3d 20 | 6e 65 77 72 65 63 3b 0a |awrec = |newrec;.|
|00004a20| 09 09 09 09 54 72 65 65 | 2d 3e 49 6e 73 65 72 74 |....Tree|->Insert|
|00004a30| 54 69 74 6c 65 28 6f 74 | 69 74 6c 65 6b 65 79 2c |Title(ot|itlekey,|
|00004a40| 26 72 61 77 72 65 63 29 | 3b 0a 09 09 09 7d 0a 09 |&rawrec)|;....}..|
|00004a50| 09 7d 0a 09 09 69 66 20 | 28 54 72 65 65 2d 3e 53 |.}...if |(Tree->S|
|00004a60| 65 61 72 63 68 54 69 74 | 6c 65 28 74 69 74 6c 65 |earchTit|le(title|
|00004a70| 6b 65 79 2c 26 74 65 6d | 70 29 20 26 26 0a 09 09 |key,&tem|p) &&...|
|00004a80| 20 20 20 20 73 74 72 65 | 71 70 28 74 69 74 6c 65 | stre|qp(title|
|00004a90| 6b 65 79 2c 74 65 6d 70 | 2e 6b 65 79 29 29 20 7b |key,temp|.key)) {|
|00004aa0| 0a 09 09 09 4c 69 73 74 | 52 65 63 6f 72 64 20 72 |....List|Record r|
|00004ab0| 65 63 28 26 74 65 6d 70 | 2e 64 61 74 61 29 3b 0a |ec(&temp|.data);.|
|00004ac0| 09 09 09 69 6e 74 20 6e | 69 74 65 6d 73 20 3d 20 |...int n|items = |
|00004ad0| 72 65 63 2e 45 6c 65 6d | 65 6e 74 43 6f 75 6e 74 |rec.Elem|entCount|
|00004ae0| 28 29 3b 0a 09 09 09 69 | 6e 74 20 6f 75 74 69 74 |();....i|nt outit|
|00004af0| 65 6d 73 20 3d 20 30 3b | 0a 09 09 09 66 6f 72 20 |ems = 0;|....for |
|00004b00| 28 69 6e 74 20 69 20 3d | 20 30 3b 20 69 20 3c 20 |(int i =| 0; i < |
|00004b10| 6e 69 74 65 6d 73 3b 20 | 69 2b 2b 29 20 7b 0a 09 |nitems; |i++) {..|
|00004b20| 09 09 09 69 66 20 28 21 | 73 74 72 65 71 70 28 72 |...if (!|streqp(r|
|00004b30| 65 63 5b 69 5d 2c 6b 65 | 79 29 29 20 7b 0a 09 09 |ec[i],ke|y)) {...|
|00004b40| 09 09 09 6e 65 77 65 6c | 65 6d 73 5b 6f 75 74 69 |...newel|ems[outi|
|00004b50| 74 65 6d 73 2b 2b 5d 20 | 3d 20 72 65 63 5b 69 5d |tems++] |= rec[i]|
|00004b60| 3b 0a 09 09 09 09 7d 0a | 09 09 09 7d 0a 09 09 09 |;.....}.|...}....|
|00004b70| 6e 65 77 65 6c 65 6d 73 | 5b 6f 75 74 69 74 65 6d |newelems|[outitem|
|00004b80| 73 2b 2b 5d 20 3d 20 28 | 63 68 61 72 2a 29 6b 65 |s++] = (|char*)ke|
|00004b90| 79 3b 0a 09 09 09 4c 69 | 73 74 52 65 63 6f 72 64 |y;....Li|stRecord|
|00004ba0| 20 6e 65 77 72 65 63 28 | 6f 75 74 69 74 65 6d 73 | newrec(|outitems|
|00004bb0| 2c 6e 65 77 65 6c 65 6d | 73 29 3b 0a 09 09 09 52 |,newelem|s);....R|
|00004bc0| 65 63 6f 72 64 20 72 61 | 77 72 65 63 20 3d 20 6e |ecord ra|wrec = n|
|00004bd0| 65 77 72 65 63 3b 0a 09 | 09 09 54 72 65 65 2d 3e |ewrec;..|..Tree->|
|00004be0| 49 6e 73 65 72 74 54 69 | 74 6c 65 28 74 69 74 6c |InsertTi|tle(titl|
|00004bf0| 65 6b 65 79 2c 26 72 61 | 77 72 65 63 29 3b 0a 09 |ekey,&ra|wrec);..|
|00004c00| 09 7d 20 65 6c 73 65 20 | 69 66 20 28 74 69 74 6c |.} else |if (titl|
|00004c10| 65 6b 65 79 5b 30 5d 20 | 21 3d 20 30 29 20 7b 0a |ekey[0] |!= 0) {.|
|00004c20| 09 09 09 6e 65 77 65 6c | 65 6d 73 5b 30 5d 20 3d |...newel|ems[0] =|
|00004c30| 20 28 63 68 61 72 2a 29 | 6b 65 79 3b 0a 09 09 09 | (char*)|key;....|
|00004c40| 4c 69 73 74 52 65 63 6f | 72 64 20 6e 65 77 72 65 |ListReco|rd newre|
|00004c50| 63 28 31 2c 6e 65 77 65 | 6c 65 6d 73 29 3b 0a 09 |c(1,newe|lems);..|
|00004c60| 09 09 52 65 63 6f 72 64 | 20 72 61 77 72 65 63 20 |..Record| rawrec |
|00004c70| 3d 20 6e 65 77 72 65 63 | 3b 0a 09 09 09 54 72 65 |= newrec|;....Tre|
|00004c80| 65 2d 3e 49 6e 73 65 72 | 74 54 69 74 6c 65 28 74 |e->Inser|tTitle(t|
|00004c90| 69 74 6c 65 6b 65 79 2c | 26 72 61 77 72 65 63 29 |itlekey,|&rawrec)|
|00004ca0| 3b 0a 09 09 7d 0a 09 7d | 0a 7d 0a 09 09 09 09 09 |;...}..}|.}......|
|00004cb0| 09 0a 76 6f 69 64 20 51 | 75 6f 74 65 53 74 72 69 |..void Q|uoteStri|
|00004cc0| 6e 67 42 75 66 66 65 72 | 28 63 68 61 72 2a 20 62 |ngBuffer|(char* b|
|00004cd0| 75 66 66 65 72 2c 63 68 | 61 72 2a 20 73 74 72 69 |uffer,ch|ar* stri|
|00004ce0| 6e 67 29 0a 7b 0a 09 2a | 62 75 66 66 65 72 2b 2b |ng).{..*|buffer++|
|00004cf0| 20 3d 20 27 22 27 3b 0a | 09 77 68 69 6c 65 20 28 | = '"';.|.while (|
|00004d00| 2a 73 74 72 69 6e 67 20 | 21 3d 20 30 29 20 7b 0a |*string |!= 0) {.|
|00004d10| 09 09 69 66 20 28 2a 73 | 74 72 69 6e 67 20 3d 3d |..if (*s|tring ==|
|00004d20| 20 27 22 27 29 20 2a 62 | 75 66 66 65 72 2b 2b 20 | '"') *b|uffer++ |
|00004d30| 3d 20 27 5c 5c 27 3b 0a | 09 09 2a 62 75 66 66 65 |= '\\';.|..*buffe|
|00004d40| 72 2b 2b 20 3d 20 2a 73 | 74 72 69 6e 67 2b 2b 3b |r++ = *s|tring++;|
|00004d50| 0a 09 7d 0a 09 2a 62 75 | 66 66 65 72 2b 2b 20 3d |..}..*bu|ffer++ =|
|00004d60| 20 27 22 27 3b 0a 09 2a | 62 75 66 66 65 72 20 3d | '"';..*|buffer =|
|00004d70| 20 30 3b 0a 7d 0a 0a 73 | 74 61 74 69 63 20 63 68 | 0;.}..s|tatic ch|
|00004d80| 61 72 20 2a 70 74 72 3b | 0a 73 74 61 74 69 63 20 |ar *ptr;|.static |
|00004d90| 4b 65 79 20 20 20 73 75 | 62 6a 6b 65 79 3b 0a 73 |Key su|bjkey;.s|
|00004da0| 74 61 74 69 63 20 76 6f | 69 64 20 45 78 61 6d 69 |tatic vo|id Exami|
|00004db0| 6e 65 53 75 62 6a 28 43 | 6f 72 65 49 74 65 6d 2a |neSubj(C|oreItem*|
|00004dc0| 20 69 74 65 6d 2c 69 6e | 74 20 6c 65 76 65 6c 29 | item,in|t level)|
|00004dd0| 0a 7b 0a 09 69 66 20 28 | 69 74 65 6d 2d 3e 64 61 |.{..if (|item->da|
|00004de0| 74 61 2e 73 69 7a 65 20 | 3c 3d 20 30 29 20 72 65 |ta.size |<= 0) re|
|00004df0| 74 75 72 6e 3b 0a 09 4c | 69 73 74 52 65 63 6f 72 |turn;..L|istRecor|
|00004e00| 64 20 72 65 63 28 26 69 | 74 65 6d 2d 3e 64 61 74 |d rec(&i|tem->dat|
|00004e10| 61 29 3b 0a 09 69 6e 74 | 20 69 63 6f 75 6e 74 20 |a);..int| icount |
|00004e20| 3d 20 72 65 63 2e 45 6c | 65 6d 65 6e 74 43 6f 75 |= rec.El|ementCou|
|00004e30| 6e 74 28 29 3b 0a 09 66 | 6f 72 20 28 69 6e 74 20 |nt();..f|or (int |
|00004e40| 69 20 3d 20 30 3b 20 69 | 20 3c 20 69 63 6f 75 6e |i = 0; i| < icoun|
|00004e50| 74 3b 20 69 2b 2b 29 20 | 7b 0a 09 09 69 66 20 28 |t; i++) |{...if (|
|00004e60| 73 74 72 65 71 70 28 73 | 75 62 6a 6b 65 79 2c 72 |streqp(s|ubjkey,r|
|00004e70| 65 63 5b 69 5d 29 29 20 | 7b 0a 09 09 09 51 75 6f |ec[i])) |{....Quo|
|00004e80| 74 65 53 74 72 69 6e 67 | 42 75 66 66 65 72 28 70 |teString|Buffer(p|
|00004e90| 74 72 2c 69 74 65 6d 2d | 3e 6b 65 79 29 3b 0a 09 |tr,item-|>key);..|
|00004ea0| 09 09 70 74 72 20 2b 3d | 20 73 74 72 6c 65 6e 28 |..ptr +=| strlen(|
|00004eb0| 70 74 72 29 3b 0a 09 09 | 09 2a 70 74 72 2b 2b 20 |ptr);...|.*ptr++ |
|00004ec0| 3d 20 27 2c 27 3b 0a 09 | 09 09 72 65 74 75 72 6e |= ',';..|..return|
|00004ed0| 3b 0a 09 09 7d 0a 09 7d | 0a 7d 0a 0a 76 6f 69 64 |;...}..}|.}..void|
|00004ee0| 20 46 65 74 63 68 53 75 | 62 6a 73 28 63 68 61 72 | FetchSu|bjs(char|
|00004ef0| 2a 20 73 75 62 6a 62 75 | 66 66 65 72 2c 63 6f 6e |* subjbu|ffer,con|
|00004f00| 73 74 20 4b 65 79 20 6b | 65 79 29 0a 7b 0a 09 70 |st Key k|ey).{..p|
|00004f10| 74 72 20 3d 20 73 75 62 | 6a 62 75 66 66 65 72 3b |tr = sub|jbuffer;|
|00004f20| 0a 09 73 74 72 63 70 79 | 28 73 75 62 6a 6b 65 79 |..strcpy|(subjkey|
|00004f30| 2c 6b 65 79 29 3b 0a 09 | 54 72 65 65 2d 3e 54 72 |,key);..|Tree->Tr|
|00004f40| 61 76 65 72 73 65 53 75 | 62 6a 28 45 78 61 6d 69 |averseSu|bj(Exami|
|00004f50| 6e 65 53 75 62 6a 29 3b | 0a 09 69 66 20 28 70 74 |neSubj);|..if (pt|
|00004f60| 72 20 3e 20 73 75 62 6a | 62 75 66 66 65 72 20 26 |r > subj|buffer &|
|00004f70| 26 20 2a 28 70 74 72 2d | 31 29 20 3d 3d 20 27 2c |& *(ptr-|1) == ',|
|00004f80| 27 29 20 70 74 72 2d 2d | 3b 0a 09 2a 70 74 72 20 |') ptr--|;..*ptr |
|00004f90| 3d 20 27 5c 30 27 3b 0a | 7d 0a 0a 42 6f 6f 6c 65 |= '\0';.|}..Boole|
|00004fa0| 61 6e 20 43 61 72 64 73 | 41 72 65 44 69 66 66 65 |an Cards|AreDiffe|
|00004fb0| 72 65 6e 74 28 63 6f 6e | 73 74 20 43 61 72 64 20 |rent(con|st Card |
|00004fc0| 2a 63 31 2c 63 6f 6e 73 | 74 20 43 61 72 64 20 2a |*c1,cons|t Card *|
|00004fd0| 63 32 29 0a 7b 0a 09 69 | 66 20 28 63 31 2d 3e 74 |c2).{..i|f (c1->t|
|00004fe0| 79 70 65 20 21 3d 20 63 | 32 2d 3e 74 79 70 65 20 |ype != c|2->type |
|00004ff0| 7c 7c 0a 09 20 20 20 20 | 63 31 2d 3e 76 6f 6c 20 |||.. |c1->vol |
|00005000| 20 21 3d 20 63 32 2d 3e | 76 6f 6c 20 20 7c 7c 0a | != c2->|vol ||.|
|00005010| 09 20 20 20 20 63 31 2d | 3e 79 65 61 72 20 21 3d |. c1-|>year !=|
|00005020| 20 63 32 2d 3e 79 65 61 | 72 20 7c 7c 0a 09 20 20 | c2->yea|r ||.. |
|00005030| 20 20 73 74 72 63 6d 70 | 28 63 31 2d 3e 61 75 74 | strcmp|(c1->aut|
|00005040| 68 6f 72 2c 63 32 2d 3e | 61 75 74 68 6f 72 29 20 |hor,c2->|author) |
|00005050| 21 3d 20 30 20 7c 7c 0a | 09 20 20 20 20 73 74 72 |!= 0 ||.|. str|
|00005060| 63 6d 70 28 63 31 2d 3e | 74 69 74 6c 65 2c 63 32 |cmp(c1->|title,c2|
|00005070| 2d 3e 74 69 74 6c 65 29 | 20 21 3d 20 30 20 7c 7c |->title)| != 0 |||
|00005080| 0a 09 20 20 20 20 73 74 | 72 63 6d 70 28 63 31 2d |.. st|rcmp(c1-|
|00005090| 3e 70 75 62 6c 69 73 68 | 65 72 2c 63 32 2d 3e 70 |>publish|er,c2->p|
|000050a0| 75 62 6c 69 73 68 65 72 | 29 20 21 3d 20 30 20 7c |ublisher|) != 0 ||
|000050b0| 7c 0a 09 20 20 20 20 73 | 74 72 63 6d 70 28 63 31 ||.. s|trcmp(c1|
|000050c0| 2d 3e 63 69 74 79 2c 63 | 32 2d 3e 63 69 74 79 29 |->city,c|2->city)|
|000050d0| 20 21 3d 20 30 20 7c 7c | 0a 09 20 20 20 20 73 74 | != 0 |||.. st|
|000050e0| 72 63 6d 70 28 63 31 2d | 3e 64 65 73 63 72 69 70 |rcmp(c1-|>descrip|
|000050f0| 74 69 6f 6e 2c 63 32 2d | 3e 64 65 73 63 72 69 70 |tion,c2-|>descrip|
|00005100| 74 69 6f 6e 29 20 21 3d | 20 30 29 20 72 65 74 75 |tion) !=| 0) retu|
|00005110| 72 6e 28 74 72 75 65 29 | 3b 0a 09 65 6c 73 65 20 |rn(true)|;..else |
|00005120| 72 65 74 75 72 6e 28 66 | 61 6c 73 65 29 3b 0a 7d |return(f|alse);.}|
|00005130| 0a 0a 73 74 61 74 69 63 | 20 76 6f 69 64 20 53 61 |..static| void Sa|
|00005140| 76 65 43 61 72 64 28 45 | 64 69 74 46 6f 72 6d 26 |veCard(E|ditForm&|
|00005150| 20 65 66 29 0a 7b 0a 09 | 69 66 20 28 4f 72 69 67 | ef).{..|if (Orig|
|00005160| 43 61 72 64 20 21 3d 20 | 30 20 26 26 20 43 61 72 |Card != |0 && Car|
|00005170| 64 73 41 72 65 44 69 66 | 66 65 72 65 6e 74 28 26 |dsAreDif|ferent(&|
|00005180| 65 64 69 74 63 61 72 64 | 2c 4f 72 69 67 43 61 72 |editcard|,OrigCar|
|00005190| 64 29 29 20 7b 0a 09 09 | 43 61 72 64 52 65 63 6f |d)) {...|CardReco|
|000051a0| 72 64 20 72 65 63 28 26 | 65 64 69 74 63 61 72 64 |rd rec(&|editcard|
|000051b0| 29 3b 0a 09 09 52 65 63 | 6f 72 64 20 72 61 77 72 |);...Rec|ord rawr|
|000051c0| 65 63 20 3d 20 72 65 63 | 3b 0a 09 09 54 72 65 65 |ec = rec|;...Tree|
|000051d0| 2d 3e 49 6e 73 65 72 74 | 49 64 28 65 64 69 74 6b |->Insert|Id(editk|
|000051e0| 65 79 2c 26 72 61 77 72 | 65 63 29 3b 0a 09 09 55 |ey,&rawr|ec);...U|
|000051f0| 70 64 61 74 65 41 75 74 | 68 6f 72 28 41 75 74 68 |pdateAut|hor(Auth|
|00005200| 6f 72 2c 4f 72 69 67 43 | 61 72 64 2d 3e 61 75 74 |or,OrigC|ard->aut|
|00005210| 68 6f 72 2c 65 64 69 74 | 6b 65 79 29 3b 0a 09 09 |hor,edit|key);...|
|00005220| 55 70 64 61 74 65 54 69 | 74 6c 65 28 54 69 74 6c |UpdateTi|tle(Titl|
|00005230| 65 2c 4f 72 69 67 43 61 | 72 64 2d 3e 74 69 74 6c |e,OrigCa|rd->titl|
|00005240| 65 2c 65 64 69 74 6b 65 | 79 29 3b 0a 09 7d 20 65 |e,editke|y);..} e|
|00005250| 6c 73 65 20 7b 0a 09 09 | 43 61 72 64 52 65 63 6f |lse {...|CardReco|
|00005260| 72 64 20 72 65 63 28 26 | 65 64 69 74 63 61 72 64 |rd rec(&|editcard|
|00005270| 29 3b 0a 09 09 52 65 63 | 6f 72 64 20 72 61 77 72 |);...Rec|ord rawr|
|00005280| 65 63 20 3d 20 72 65 63 | 3b 0a 09 09 54 72 65 65 |ec = rec|;...Tree|
|00005290| 2d 3e 49 6e 73 65 72 74 | 49 64 28 65 64 69 74 6b |->Insert|Id(editk|
|000052a0| 65 79 2c 26 72 61 77 72 | 65 63 29 3b 0a 09 09 55 |ey,&rawr|ec);...U|
|000052b0| 70 64 61 74 65 41 75 74 | 68 6f 72 28 41 75 74 68 |pdateAut|hor(Auth|
|000052c0| 6f 72 2c 22 22 2c 65 64 | 69 74 6b 65 79 29 3b 0a |or,"",ed|itkey);.|
|000052d0| 09 09 55 70 64 61 74 65 | 54 69 74 6c 65 28 54 69 |..Update|Title(Ti|
|000052e0| 74 6c 65 2c 22 22 2c 65 | 64 69 74 6b 65 79 29 3b |tle,"",e|ditkey);|
|000052f0| 0a 09 7d 0a 09 55 70 64 | 61 74 65 53 75 62 6a 73 |..}..Upd|ateSubjs|
|00005300| 28 53 75 62 6a 4c 69 73 | 74 2c 4f 72 69 67 53 75 |(SubjLis|t,OrigSu|
|00005310| 62 6a 4c 69 73 74 2c 65 | 64 69 74 6b 65 79 29 3b |bjList,e|ditkey);|
|00005320| 0a 09 73 74 72 63 70 79 | 28 4f 72 69 67 53 75 62 |..strcpy|(OrigSub|
|00005330| 6a 4c 69 73 74 2c 53 75 | 62 6a 4c 69 73 74 29 3b |jList,Su|bjList);|
|00005340| 0a 09 54 65 72 6d 2d 3e | 4d 65 73 73 61 67 65 28 |..Term->|Message(|
|00005350| 22 53 61 76 65 64 22 29 | 3b 0a 09 65 66 2e 49 73 |"Saved")|;..ef.Is|
|00005360| 4d 6f 64 69 66 69 65 64 | 20 3d 20 66 61 6c 73 65 |Modified| = false|
|00005370| 3b 0a 09 72 65 74 75 72 | 6e 3b 0a 7d 0a 0a 73 74 |;..retur|n;.}..st|
|00005380| 61 74 69 63 20 46 69 65 | 6c 64 20 46 69 65 6c 64 |atic Fie|ld Field|
|00005390| 73 5b 5d 20 3d 20 7b 0a | 09 7b 22 49 64 3a 20 22 |s[] = {.|.{"Id: "|
|000053a0| 2c 4c 69 74 65 72 61 6c | 2c 30 2c 30 2c 33 2c 31 |,Literal|,0,0,3,1|
|000053b0| 2c 34 2c 31 2c 30 7d 2c | 0a 09 7b 65 64 69 74 6b |,4,1,0},|..{editk|
|000053c0| 65 79 2c 4c 69 74 65 72 | 61 6c 2c 30 2c 30 2c 33 |ey,Liter|al,0,0,3|
|000053d0| 2c 35 2c 4b 65 79 53 69 | 7a 65 2c 31 2c 30 7d 2c |,5,KeySi|ze,1,0},|
|000053e0| 0a 09 7b 22 54 79 70 65 | 3a 20 22 2c 4c 69 74 65 |..{"Type|: ",Lite|
|000053f0| 72 61 6c 2c 30 2c 30 2c | 33 2c 35 30 2c 36 2c 31 |ral,0,0,|3,50,6,1|
|00005400| 2c 30 7d 2c 0a 09 7b 26 | 65 64 69 74 63 61 72 64 |,0},..{&|editcard|
|00005410| 2e 74 79 70 65 2c 53 70 | 65 63 69 61 6c 2c 54 79 |.type,Sp|ecial,Ty|
|00005420| 70 65 54 6f 53 74 72 69 | 6e 67 2c 53 74 72 69 6e |peToStri|ng,Strin|
|00005430| 67 54 6f 54 79 70 65 2c | 33 2c 35 36 2c 31 34 2c |gToType,|3,56,14,|
|00005440| 31 2c 30 7d 2c 0a 09 7b | 22 54 69 74 6c 65 3a 20 |1,0},..{|"Title: |
|00005450| 22 2c 4c 69 74 65 72 61 | 6c 2c 30 2c 30 2c 34 2c |",Litera|l,0,0,4,|
|00005460| 31 2c 37 2c 31 2c 30 7d | 2c 0a 09 7b 54 69 74 6c |1,7,1,0}|,..{Titl|
|00005470| 65 2c 53 74 72 69 6e 67 | 2c 30 2c 30 2c 34 2c 38 |e,String|,0,0,4,8|
|00005480| 2c 36 30 2c 31 2c 42 75 | 66 66 53 69 7a 65 7d 2c |,60,1,Bu|ffSize},|
|00005490| 0a 09 7b 22 41 75 74 68 | 6f 72 3a 20 22 2c 4c 69 |..{"Auth|or: ",Li|
|000054a0| 74 65 72 61 6c 2c 30 2c | 30 2c 35 2c 31 2c 38 2c |teral,0,|0,5,1,8,|
|000054b0| 31 2c 30 7d 2c 0a 09 7b | 41 75 74 68 6f 72 2c 53 |1,0},..{|Author,S|
|000054c0| 74 72 69 6e 67 2c 30 2c | 30 2c 35 2c 39 2c 36 30 |tring,0,|0,5,9,60|
|000054d0| 2c 31 2c 42 75 66 66 53 | 69 7a 65 7d 2c 0a 09 7b |,1,BuffS|ize},..{|
|000054e0| 22 50 75 62 6c 69 73 68 | 65 72 3a 20 22 2c 4c 69 |"Publish|er: ",Li|
|000054f0| 74 65 72 61 6c 2c 30 2c | 30 2c 36 2c 31 2c 31 31 |teral,0,|0,6,1,11|
|00005500| 2c 31 2c 30 7d 2c 0a 09 | 7b 50 75 62 6c 69 73 68 |,1,0},..|{Publish|
|00005510| 65 72 2c 53 74 72 69 6e | 67 2c 30 2c 30 2c 36 2c |er,Strin|g,0,0,6,|
|00005520| 31 32 2c 34 30 2c 31 2c | 42 75 66 66 53 69 7a 65 |12,40,1,|BuffSize|
|00005530| 7d 2c 0a 09 7b 22 59 65 | 61 72 3a 20 22 2c 4c 69 |},..{"Ye|ar: ",Li|
|00005540| 74 65 72 61 6c 2c 30 2c | 30 2c 36 2c 36 30 2c 36 |teral,0,|0,6,60,6|
|00005550| 2c 31 2c 30 7d 2c 0a 09 | 7b 26 65 64 69 74 63 61 |,1,0},..|{&editca|
|00005560| 72 64 2e 79 65 61 72 2c | 49 6e 74 2c 30 2c 30 2c |rd.year,|Int,0,0,|
|00005570| 36 2c 36 36 2c 34 2c 31 | 2c 30 7d 2c 0a 09 7b 22 |6,66,4,1|,0},..{"|
|00005580| 43 69 74 79 3a 20 22 2c | 4c 69 74 65 72 61 6c 2c |City: ",|Literal,|
|00005590| 30 2c 30 2c 37 2c 31 2c | 36 2c 31 2c 30 7d 2c 0a |0,0,7,1,|6,1,0},.|
|000055a0| 09 7b 43 69 74 79 2c 53 | 74 72 69 6e 67 2c 30 2c |.{City,S|tring,0,|
|000055b0| 30 2c 37 2c 37 2c 34 30 | 2c 31 2c 42 75 66 66 53 |0,7,7,40|,1,BuffS|
|000055c0| 69 7a 65 7d 2c 0a 09 7b | 22 56 6f 6c 3a 20 22 2c |ize},..{|"Vol: ",|
|000055d0| 4c 69 74 65 72 61 6c 2c | 30 2c 30 2c 37 2c 36 30 |Literal,|0,0,7,60|
|000055e0| 2c 35 2c 31 2c 30 7d 2c | 0a 09 7b 26 65 64 69 74 |,5,1,0},|..{&edit|
|000055f0| 63 61 72 64 2e 76 6f 6c | 2c 49 6e 74 2c 30 2c 30 |card.vol|,Int,0,0|
|00005600| 2c 37 2c 36 35 2c 34 2c | 31 2c 30 7d 2c 0a 09 7b |,7,65,4,|1,0},..{|
|00005610| 22 44 65 73 63 72 69 70 | 74 69 6f 6e 3a 20 22 2c |"Descrip|tion: ",|
|00005620| 4c 69 74 65 72 61 6c 2c | 30 2c 30 2c 38 2c 31 2c |Literal,|0,0,8,1,|
|00005630| 31 33 2c 31 2c 30 7d 2c | 0a 09 7b 44 65 73 63 72 |13,1,0},|..{Descr|
|00005640| 69 70 74 69 6f 6e 2c 45 | 64 69 74 6f 72 53 74 72 |iption,E|ditorStr|
|00005650| 69 6e 67 2c 30 2c 30 2c | 38 2c 31 34 2c 35 30 2c |ing,0,0,|8,14,50,|
|00005660| 31 30 2c 44 65 73 63 72 | 53 69 7a 65 7d 2c 0a 09 |10,Descr|Size},..|
|00005670| 7b 22 53 75 62 6a 65 63 | 74 73 3a 20 22 2c 4c 69 |{"Subjec|ts: ",Li|
|00005680| 74 65 72 61 6c 2c 30 2c | 30 2c 31 39 2c 31 2c 31 |teral,0,|0,19,1,1|
|00005690| 30 2c 31 2c 30 7d 2c 0a | 09 7b 53 75 62 6a 4c 69 |0,1,0},.|.{SubjLi|
|000056a0| 73 74 2c 45 64 69 74 6f | 72 53 74 72 69 6e 67 2c |st,Edito|rString,|
|000056b0| 30 2c 30 2c 31 39 2c 31 | 31 2c 35 30 2c 33 2c 44 |0,0,19,1|1,50,3,D|
|000056c0| 65 73 63 72 53 69 7a 65 | 7d 0a 7d 3b 0a 0a 73 74 |escrSize|}.};..st|
|000056d0| 61 74 69 63 20 63 6f 6e | 73 74 20 4e 75 6d 46 69 |atic con|st NumFi|
|000056e0| 65 6c 64 73 20 3d 20 73 | 69 7a 65 6f 66 28 46 69 |elds = s|izeof(Fi|
|000056f0| 65 6c 64 73 29 20 2f 20 | 73 69 7a 65 6f 66 28 46 |elds) / |sizeof(F|
|00005700| 69 65 6c 64 29 3b 0a 0a | 73 74 61 74 69 63 20 76 |ield);..|static v|
|00005710| 6f 69 64 20 48 65 6c 70 | 46 69 65 6c 64 28 45 64 |oid Help|Field(Ed|
|00005720| 69 74 46 6f 72 6d 26 20 | 65 66 29 0a 7b 0a 09 73 |itForm& |ef).{..s|
|00005730| 77 69 74 63 68 20 28 65 | 66 2e 43 75 72 46 69 65 |witch (e|f.CurFie|
|00005740| 6c 64 28 29 29 20 7b 0a | 09 09 63 61 73 65 20 34 |ld()) {.|..case 4|
|00005750| 3a 20 2f 2f 20 54 79 70 | 65 3a 0a 09 09 09 54 65 |: // Typ|e:....Te|
|00005760| 72 6d 2d 3e 43 6c 65 61 | 72 28 29 3b 0a 09 09 09 |rm->Clea|r();....|
|00005770| 54 65 72 6d 2d 3e 50 75 | 74 53 74 72 41 74 28 32 |Term->Pu|tStrAt(2|
|00005780| 2c 30 2c 22 54 79 70 65 | 20 66 69 65 6c 64 20 2d |,0,"Type| field -|
|00005790| 20 65 6e 74 65 72 20 6f | 6e 65 20 6f 66 3a 22 29 | enter o|ne of:")|
|000057a0| 3b 0a 09 09 09 54 65 72 | 6d 2d 3e 50 75 74 53 74 |;....Ter|m->PutSt|
|000057b0| 72 41 74 28 34 2c 30 2c | 22 42 6f 6f 6b 2c 20 4d |rAt(4,0,|"Book, M|
|000057c0| 61 67 61 7a 69 6e 65 2c | 20 43 44 2c 20 41 75 64 |agazine,| CD, Aud|
|000057d0| 69 6f 43 61 73 73 65 74 | 74 65 2c 20 41 6c 62 75 |ioCasset|te, Albu|
|000057e0| 6d 2c 20 4c 61 73 65 72 | 44 69 73 6b 2c 20 56 48 |m, Laser|Disk, VH|
|000057f0| 53 56 69 64 65 6f 2c 22 | 29 3b 0a 09 09 09 54 65 |SVideo,"|);....Te|
|00005800| 72 6d 2d 3e 50 75 74 53 | 74 72 41 74 28 35 2c 30 |rm->PutS|trAt(5,0|
|00005810| 2c 22 42 65 74 61 56 69 | 64 65 6f 2c 20 45 69 67 |,"BetaVi|deo, Eig|
|00005820| 68 74 4d 4d 2c 20 45 69 | 67 68 74 54 72 61 63 6b |htMM, Ei|ghtTrack|
|00005830| 2c 20 44 41 54 2c 20 6f | 72 20 4f 74 68 65 72 2e |, DAT, o|r Other.|
|00005840| 22 29 3b 0a 09 09 09 54 | 65 72 6d 2d 3e 50 75 74 |");....T|erm->Put|
|00005850| 53 74 72 41 74 28 37 2c | 30 2c 22 54 68 69 73 20 |StrAt(7,|0,"This |
|00005860| 69 73 20 74 68 65 20 74 | 79 70 65 20 6f 66 20 69 |is the t|ype of i|
|00005870| 74 65 6d 20 62 65 69 6e | 67 20 63 61 74 61 6c 6f |tem bein|g catalo|
|00005880| 67 65 64 2e 22 29 3b 0a | 09 09 09 54 65 72 6d 2d |ged.");.|...Term-|
|00005890| 3e 50 75 74 53 74 72 41 | 74 28 30 2c 30 2c 22 48 |>PutStrA|t(0,0,"H|
|000058a0| 69 74 20 61 6e 79 20 6b | 65 79 20 74 6f 20 72 65 |it any k|ey to re|
|000058b0| 73 75 6d 65 20 65 64 69 | 74 69 6e 67 3a 22 29 3b |sume edi|ting:");|
|000058c0| 0a 09 09 09 54 65 72 6d | 2d 3e 47 65 74 4b 65 79 |....Term|->GetKey|
|000058d0| 28 29 3b 0a 09 09 09 65 | 66 2e 52 65 50 61 69 6e |();....e|f.RePain|
|000058e0| 74 28 29 3b 0a 09 09 09 | 62 72 65 61 6b 3b 0a 09 |t();....|break;..|
|000058f0| 09 63 61 73 65 20 36 3a | 20 2f 2f 20 54 69 74 6c |.case 6:| // Titl|
|00005900| 65 3a 20 28 73 74 72 69 | 6e 67 29 0a 09 09 09 54 |e: (stri|ng)....T|
|00005910| 65 72 6d 2d 3e 4d 65 73 | 73 61 67 65 28 22 54 69 |erm->Mes|sage("Ti|
|00005920| 74 6c 65 20 66 69 65 6c | 64 20 2d 20 65 6e 74 65 |tle fiel|d - ente|
|00005930| 72 20 74 68 65 20 74 69 | 74 6c 65 20 61 73 20 61 |r the ti|tle as a|
|00005940| 20 73 74 72 69 6e 67 22 | 29 3b 0a 09 09 09 62 72 | string"|);....br|
|00005950| 65 61 6b 3b 0a 09 09 63 | 61 73 65 20 38 3a 20 2f |eak;...c|ase 8: /|
|00005960| 2f 20 41 75 74 68 6f 72 | 3a 20 28 73 74 72 69 6e |/ Author|: (strin|
|00005970| 67 29 0a 09 09 09 54 65 | 72 6d 2d 3e 4d 65 73 73 |g)....Te|rm->Mess|
|00005980| 61 67 65 28 22 41 75 74 | 68 6f 72 20 66 69 65 6c |age("Aut|hor fiel|
|00005990| 64 20 2d 20 65 6e 74 65 | 72 20 74 68 65 20 61 75 |d - ente|r the au|
|000059a0| 74 68 6f 72 20 61 73 20 | 61 20 73 74 72 69 6e 67 |thor as |a string|
|000059b0| 22 29 3b 0a 09 09 09 62 | 72 65 61 6b 3b 0a 09 09 |");....b|reak;...|
|000059c0| 63 61 73 65 20 31 30 3a | 20 2f 2f 20 50 75 62 6c |case 10:| // Publ|
|000059d0| 69 73 68 65 72 3a 20 28 | 73 74 72 69 6e 67 29 0a |isher: (|string).|
|000059e0| 09 09 09 54 65 72 6d 2d | 3e 4d 65 73 73 61 67 65 |...Term-|>Message|
|000059f0| 28 22 50 75 62 6c 69 73 | 68 65 72 20 66 69 65 6c |("Publis|her fiel|
|00005a00| 64 20 2d 20 65 6e 74 65 | 72 20 74 68 65 20 70 75 |d - ente|r the pu|
|00005a10| 62 6c 69 73 68 65 72 20 | 61 73 20 61 20 73 74 72 |blisher |as a str|
|00005a20| 69 6e 67 22 29 3b 0a 09 | 09 09 62 72 65 61 6b 3b |ing");..|..break;|
|00005a30| 0a 09 09 63 61 73 65 20 | 31 32 3a 20 2f 2f 20 59 |...case |12: // Y|
|00005a40| 65 61 72 3a 20 28 6e 75 | 6d 62 65 72 29 0a 09 09 |ear: (nu|mber)...|
|00005a50| 09 54 65 72 6d 2d 3e 4d | 65 73 73 61 67 65 28 22 |.Term->M|essage("|
|00005a60| 59 65 61 72 20 66 69 65 | 6c 64 20 2d 20 65 6e 74 |Year fie|ld - ent|
|00005a70| 65 72 20 74 68 65 20 79 | 65 61 72 20 61 73 20 61 |er the y|ear as a|
|00005a80| 20 6e 75 6d 62 65 72 22 | 29 3b 0a 09 09 09 62 72 | number"|);....br|
|00005a90| 65 61 6b 3b 0a 09 09 63 | 61 73 65 20 31 34 3a 20 |eak;...c|ase 14: |
|00005aa0| 2f 2f 20 43 69 74 79 3a | 20 28 73 74 72 69 6e 67 |// City:| (string|
|00005ab0| 29 0a 09 09 09 54 65 72 | 6d 2d 3e 4d 65 73 73 61 |)....Ter|m->Messa|
|00005ac0| 67 65 28 22 43 69 74 79 | 20 66 69 65 6c 64 20 2d |ge("City| field -|
|00005ad0| 20 65 6e 74 65 72 20 74 | 68 65 20 63 69 74 79 20 | enter t|he city |
|00005ae0| 61 73 20 61 20 73 74 72 | 69 6e 67 22 29 3b 0a 09 |as a str|ing");..|
|00005af0| 09 09 62 72 65 61 6b 3b | 0a 09 09 63 61 73 65 20 |..break;|...case |
|00005b00| 31 36 3a 20 2f 2f 20 56 | 6f 6c 75 6d 65 3a 20 28 |16: // V|olume: (|
|00005b10| 6e 75 6d 62 65 72 29 0a | 09 09 09 54 65 72 6d 2d |number).|...Term-|
|00005b20| 3e 4d 65 73 73 61 67 65 | 28 22 56 6f 6c 75 6d 6e |>Message|("Volumn|
|00005b30| 20 66 69 65 6c 64 20 2d | 20 65 6e 74 65 72 20 74 | field -| enter t|
|00005b40| 68 65 20 76 6f 6c 75 6d | 65 20 6e 75 6d 62 65 72 |he volum|e number|
|00005b50| 20 61 73 20 61 20 6e 75 | 6d 62 65 72 22 29 3b 0a | as a nu|mber");.|
|00005b60| 09 09 09 62 72 65 61 6b | 3b 0a 09 09 63 61 73 65 |...break|;...case|
|00005b70| 20 31 38 3a 20 2f 2f 20 | 44 65 73 63 72 69 70 74 | 18: // |Descript|
|00005b80| 69 6f 6e 20 28 6c 6f 6e | 67 20 73 74 72 69 6e 67 |ion (lon|g string|
|00005b90| 29 0a 09 09 09 54 65 72 | 6d 2d 3e 4d 65 73 73 61 |)....Ter|m->Messa|
|00005ba0| 67 65 28 22 44 65 73 63 | 72 69 70 74 69 6f 6e 20 |ge("Desc|ription |
|00005bb0| 66 69 65 6c 64 20 2d 20 | 65 6e 74 65 72 20 74 68 |field - |enter th|
|00005bc0| 65 20 64 65 73 63 72 69 | 70 74 69 6f 6e 20 61 73 |e descri|ption as|
|00005bd0| 20 61 20 6d 75 6c 74 69 | 2d 6c 69 6e 65 20 73 74 | a multi|-line st|
|00005be0| 72 69 6e 67 22 29 3b 0a | 09 09 09 62 72 65 61 6b |ring");.|...break|
|00005bf0| 3b 0a 09 09 63 61 73 65 | 20 32 30 3a 20 2f 2f 20 |;...case| 20: // |
|00005c00| 53 75 62 6a 65 63 74 73 | 20 28 6c 6f 6e 67 20 73 |Subjects| (long s|
|00005c10| 74 72 69 6e 67 29 0a 09 | 09 09 54 65 72 6d 2d 3e |tring)..|..Term->|
|00005c20| 4d 65 73 73 61 67 65 28 | 22 53 75 62 6a 65 63 74 |Message(|"Subject|
|00005c30| 73 20 66 69 65 6c 64 20 | 2d 20 65 6e 74 65 72 20 |s field |- enter |
|00005c40| 74 68 65 20 73 75 62 6a | 65 63 74 73 20 61 73 20 |the subj|ects as |
|00005c50| 61 20 63 6f 6d 6d 61 20 | 73 65 70 61 72 61 74 65 |a comma |separate|
|00005c60| 64 20 6c 69 73 74 20 6f | 66 20 73 74 72 69 6e 67 |d list o|f string|
|00005c70| 73 22 29 3b 0a 09 09 09 | 62 72 65 61 6b 3b 0a 09 |s");....|break;..|
|00005c80| 7d 0a 7d 0a 0a 73 74 61 | 74 69 63 20 4b 65 79 42 |}.}..sta|tic KeyB|
|00005c90| 69 6e 64 69 6e 67 20 42 | 69 6e 64 69 6e 67 73 5b |inding B|indings[|
|00005ca0| 5d 20 3d 20 7b 0a 09 7b | 53 61 76 65 43 61 72 64 |] = {..{|SaveCard|
|00005cb0| 2c 22 5e 53 20 2d 20 53 | 61 76 65 20 63 61 72 64 |,"^S - S|ave card|
|00005cc0| 22 2c 27 53 27 20 2d 20 | 27 40 27 7d 2c 0a 09 7b |",'S' - |'@'},..{|
|00005cd0| 48 65 6c 70 46 69 65 6c | 64 2c 22 48 20 2d 20 47 |HelpFiel|d,"H - G|
|00005ce0| 69 76 65 20 68 65 6c 70 | 20 66 6f 72 20 74 68 65 |ive help| for the|
|00005cf0| 20 63 75 72 72 65 6e 74 | 20 66 69 65 6c 64 22 2c | current| field",|
|00005d00| 27 48 27 7d 2c 0a 09 7b | 48 65 6c 70 46 69 65 6c |'H'},..{|HelpFiel|
|00005d10| 64 2c 22 68 20 2d 20 47 | 69 76 65 20 68 65 6c 70 |d,"h - G|ive help|
|00005d20| 20 66 6f 72 20 74 68 65 | 20 63 75 72 72 65 6e 74 | for the| current|
|00005d30| 20 66 69 65 6c 64 22 2c | 27 68 27 7d 0a 7d 3b 0a | field",|'h'}.};.|
|00005d40| 73 74 61 74 69 63 20 63 | 6f 6e 73 74 20 4e 75 6d |static c|onst Num|
|00005d50| 42 69 6e 64 69 6e 67 73 | 20 3d 20 73 69 7a 65 6f |Bindings| = sizeo|
|00005d60| 66 28 42 69 6e 64 69 6e | 67 73 29 20 2f 20 73 69 |f(Bindin|gs) / si|
|00005d70| 7a 65 6f 66 28 4b 65 79 | 42 69 6e 64 69 6e 67 29 |zeof(Key|Binding)|
|00005d80| 3b 0a 0a 69 6e 74 20 45 | 64 69 74 43 61 72 64 31 |;..int E|ditCard1|
|00005d90| 28 4b 65 79 20 69 6e 6b | 65 79 29 0a 7b 0a 23 69 |(Key ink|ey).{.#i|
|00005da0| 66 64 65 66 20 49 4c 4c | 45 47 41 4c 5f 49 4e 53 |fdef ILL|EGAL_INS|
|00005db0| 54 52 0a 09 73 74 61 74 | 69 63 20 45 64 69 74 46 |TR..stat|ic EditF|
|00005dc0| 6f 72 6d 20 65 64 69 74 | 66 6f 72 6d 28 22 45 64 |orm edit|form("Ed|
|00005dd0| 69 74 69 6e 67 20 61 20 | 43 61 72 64 22 2c 4e 75 |iting a |Card",Nu|
|00005de0| 6d 46 69 65 6c 64 73 2c | 46 69 65 6c 64 73 2c 0a |mFields,|Fields,.|
|00005df0| 09 09 09 09 09 09 20 20 | 4e 75 6d 42 69 6e 64 69 |...... |NumBindi|
|00005e00| 6e 67 73 2c 42 69 6e 64 | 69 6e 67 73 29 3b 0a 23 |ngs,Bind|ings);.#|
|00005e10| 65 6c 73 65 0a 09 45 64 | 69 74 46 6f 72 6d 20 2a |else..Ed|itForm *|
|00005e20| 65 64 69 74 66 6f 72 6d | 20 3d 20 6e 65 77 20 45 |editform| = new E|
|00005e30| 64 69 74 46 6f 72 6d 28 | 22 45 64 69 74 69 6e 67 |ditForm(|"Editing|
|00005e40| 20 61 20 43 61 72 64 22 | 2c 4e 75 6d 46 69 65 6c | a Card"|,NumFiel|
|00005e50| 64 73 2c 46 69 65 6c 64 | 73 2c 0a 09 09 09 09 09 |ds,Field|s,......|
|00005e60| 09 20 20 4e 75 6d 42 69 | 6e 64 69 6e 67 73 2c 42 |. NumBi|ndings,B|
|00005e70| 69 6e 64 69 6e 67 73 29 | 3b 0a 23 65 6e 64 69 66 |indings)|;.#endif|
|00005e80| 0a 0a 09 73 74 72 63 70 | 79 28 65 64 69 74 6b 65 |...strcp|y(editke|
|00005e90| 79 2c 69 6e 6b 65 79 29 | 3b 0a 09 43 6f 72 65 49 |y,inkey)|;..CoreI|
|00005ea0| 74 65 6d 20 69 74 65 6d | 3b 0a 23 69 66 64 65 66 |tem item|;.#ifdef|
|00005eb0| 20 49 4c 4c 45 47 41 4c | 5f 49 4e 53 54 52 0a 09 | ILLEGAL|_INSTR..|
|00005ec0| 65 64 69 74 66 6f 72 6d | 2e 52 65 73 65 74 46 69 |editform|.ResetFi|
|00005ed0| 65 6c 64 28 29 3b 0a 23 | 65 6c 73 65 0a 09 65 64 |eld();.#|else..ed|
|00005ee0| 69 74 66 6f 72 6d 2d 3e | 52 65 73 65 74 46 69 65 |itform->|ResetFie|
|00005ef0| 6c 64 28 29 3b 0a 23 65 | 6e 64 69 66 0a 09 69 66 |ld();.#e|ndif..if|
|00005f00| 20 28 54 72 65 65 2d 3e | 53 65 61 72 63 68 49 64 | (Tree->|SearchId|
|00005f10| 28 65 64 69 74 6b 65 79 | 2c 26 69 74 65 6d 29 20 |(editkey|,&item) |
|00005f20| 26 26 0a 09 20 20 20 20 | 73 74 72 6c 65 6e 28 65 |&&.. |strlen(e|
|00005f30| 64 69 74 6b 65 79 29 20 | 3d 3d 20 73 74 72 6c 65 |ditkey) |== strle|
|00005f40| 6e 28 69 74 65 6d 2e 6b | 65 79 29 29 20 7b 0a 09 |n(item.k|ey)) {..|
|00005f50| 09 73 74 72 63 70 79 28 | 65 64 69 74 6b 65 79 2c |.strcpy(|editkey,|
|00005f60| 69 74 65 6d 2e 6b 65 79 | 29 3b 0a 09 09 43 61 72 |item.key|);...Car|
|00005f70| 64 52 65 63 6f 72 64 20 | 63 72 65 63 28 26 69 74 |dRecord |crec(&it|
|00005f80| 65 6d 2e 64 61 74 61 29 | 3b 0a 09 09 73 74 72 63 |em.data)|;...strc|
|00005f90| 70 79 28 41 75 74 68 6f | 72 2c 63 72 65 63 2d 3e |py(Autho|r,crec->|
|00005fa0| 61 75 74 68 6f 72 29 3b | 0a 09 09 73 74 72 63 70 |author);|...strcp|
|00005fb0| 79 28 54 69 74 6c 65 2c | 63 72 65 63 2d 3e 74 69 |y(Title,|crec->ti|
|00005fc0| 74 6c 65 29 3b 0a 09 09 | 73 74 72 63 70 79 28 50 |tle);...|strcpy(P|
|00005fd0| 75 62 6c 69 73 68 65 72 | 2c 63 72 65 63 2d 3e 70 |ublisher|,crec->p|
|00005fe0| 75 62 6c 69 73 68 65 72 | 29 3b 0a 09 09 73 74 72 |ublisher|);...str|
|00005ff0| 63 70 79 28 43 69 74 79 | 2c 63 72 65 63 2d 3e 63 |cpy(City|,crec->c|
|00006000| 69 74 79 29 3b 0a 09 09 | 73 74 72 63 70 79 28 44 |ity);...|strcpy(D|
|00006010| 65 73 63 72 69 70 74 69 | 6f 6e 2c 63 72 65 63 2d |escripti|on,crec-|
|00006020| 3e 64 65 73 63 72 69 70 | 74 69 6f 6e 29 3b 0a 09 |>descrip|tion);..|
|00006030| 09 65 64 69 74 63 61 72 | 64 2e 79 65 61 72 20 3d |.editcar|d.year =|
|00006040| 20 63 72 65 63 2d 3e 79 | 65 61 72 3b 0a 09 09 65 | crec->y|ear;...e|
|00006050| 64 69 74 63 61 72 64 2e | 76 6f 6c 20 20 3d 20 63 |ditcard.|vol = c|
|00006060| 72 65 63 2d 3e 76 6f 6c | 3b 0a 09 09 65 64 69 74 |rec->vol|;...edit|
|00006070| 63 61 72 64 2e 74 79 70 | 65 20 3d 20 63 72 65 63 |card.typ|e = crec|
|00006080| 2d 3e 74 79 70 65 3b 0a | 09 09 46 65 74 63 68 53 |->type;.|..FetchS|
|00006090| 75 62 6a 73 28 53 75 62 | 6a 4c 69 73 74 2c 65 64 |ubjs(Sub|jList,ed|
|000060a0| 69 74 6b 65 79 29 3b 0a | 09 09 73 74 72 63 70 79 |itkey);.|..strcpy|
|000060b0| 28 4f 72 69 67 53 75 62 | 6a 4c 69 73 74 2c 53 75 |(OrigSub|jList,Su|
|000060c0| 62 6a 4c 69 73 74 29 3b | 0a 09 09 4f 72 69 67 43 |bjList);|...OrigC|
|000060d0| 61 72 64 20 3d 20 26 63 | 72 65 63 3b 0a 23 69 66 |ard = &c|rec;.#if|
|000060e0| 64 65 66 20 49 4c 4c 45 | 47 41 4c 5f 49 4e 53 54 |def ILLE|GAL_INST|
|000060f0| 52 0a 09 20 20 20 20 09 | 69 66 28 65 64 69 74 66 |R.. .|if(editf|
|00006100| 6f 72 6d 2e 52 75 6e 46 | 6f 72 6d 28 29 29 20 7b |orm.RunF|orm()) {|
|00006110| 0a 23 65 6c 73 65 0a 09 | 20 20 20 20 09 69 66 28 |.#else..| .if(|
|00006120| 65 64 69 74 66 6f 72 6d | 2d 3e 52 75 6e 46 6f 72 |editform|->RunFor|
|00006130| 6d 28 29 29 20 7b 0a 23 | 65 6e 64 69 66 0a 09 20 |m()) {.#|endif.. |
|00006140| 20 20 20 09 09 69 66 20 | 28 54 65 72 6d 2d 3e 59 | ..if |(Term->Y|
|00006150| 6f 72 4e 70 28 32 30 2c | 30 2c 22 43 61 72 64 20 |orNp(20,|0,"Card |
|00006160| 6d 6f 64 69 66 69 65 64 | 20 2d 20 73 61 76 65 20 |modified| - save |
|00006170| 69 74 3f 22 29 29 20 0a | 23 69 66 64 65 66 20 49 |it?")) .|#ifdef I|
|00006180| 4c 4c 45 47 41 4c 5f 49 | 4e 53 54 52 0a 09 20 20 |LLEGAL_I|NSTR.. |
|00006190| 20 20 09 09 09 53 61 76 | 65 43 61 72 64 28 65 64 | ...Sav|eCard(ed|
|000061a0| 69 74 66 6f 72 6d 29 3b | 0a 23 65 6c 73 65 0a 09 |itform);|.#else..|
|000061b0| 20 20 20 20 09 09 09 53 | 61 76 65 43 61 72 64 28 | ...S|aveCard(|
|000061c0| 2a 65 64 69 74 66 6f 72 | 6d 29 3b 0a 23 65 6e 64 |*editfor|m);.#end|
|000061d0| 69 66 0a 09 20 20 20 20 | 09 7d 0a 09 7d 20 65 6c |if.. |.}..} el|
|000061e0| 73 65 20 69 66 20 28 54 | 65 72 6d 2d 3e 59 6f 72 |se if (T|erm->Yor|
|000061f0| 4e 70 28 32 31 2c 30 2c | 22 43 61 72 64 20 6e 6f |Np(21,0,|"Card no|
|00006200| 74 20 66 6f 75 6e 64 2c | 20 63 72 65 61 74 65 20 |t found,| create |
|00006210| 69 74 3f 22 29 29 20 7b | 0a 09 09 41 75 74 68 6f |it?")) {|...Autho|
|00006220| 72 5b 30 5d 20 3d 20 30 | 3b 0a 09 09 54 69 74 6c |r[0] = 0|;...Titl|
|00006230| 65 5b 30 5d 20 20 3d 20 | 30 3b 0a 09 09 50 75 62 |e[0] = |0;...Pub|
|00006240| 6c 69 73 68 65 72 5b 30 | 5d 20 3d 20 30 3b 0a 09 |lisher[0|] = 0;..|
|00006250| 09 43 69 74 79 5b 30 5d | 20 20 20 3d 20 30 3b 0a |.City[0]| = 0;.|
|00006260| 09 09 44 65 73 63 72 69 | 70 74 69 6f 6e 5b 30 5d |..Descri|ption[0]|
|00006270| 20 3d 20 30 3b 0a 09 09 | 53 75 62 6a 4c 69 73 74 | = 0;...|SubjList|
|00006280| 5b 30 5d 20 3d 20 30 3b | 0a 09 09 4f 72 69 67 53 |[0] = 0;|...OrigS|
|00006290| 75 62 6a 4c 69 73 74 5b | 30 5d 20 3d 20 30 3b 0a |ubjList[|0] = 0;.|
|000062a0| 09 09 4f 72 69 67 43 61 | 72 64 20 3d 20 30 3b 0a |..OrigCa|rd = 0;.|
|000062b0| 09 09 65 64 69 74 63 61 | 72 64 2e 74 79 70 65 20 |..editca|rd.type |
|000062c0| 3d 20 42 6f 6f 6b 3b 0a | 09 09 65 64 69 74 63 61 |= Book;.|..editca|
|000062d0| 72 64 2e 76 6f 6c 20 3d | 20 30 3b 0a 09 09 65 64 |rd.vol =| 0;...ed|
|000062e0| 69 74 63 61 72 64 2e 79 | 65 61 72 20 3d 20 30 3b |itcard.y|ear = 0;|
|000062f0| 0a 23 69 66 64 65 66 20 | 49 4c 4c 45 47 41 4c 5f |.#ifdef |ILLEGAL_|
|00006300| 49 4e 53 54 52 0a 09 20 | 20 20 20 09 69 66 28 65 |INSTR.. | .if(e|
|00006310| 64 69 74 66 6f 72 6d 2e | 52 75 6e 46 6f 72 6d 28 |ditform.|RunForm(|
|00006320| 29 29 20 7b 0a 23 65 6c | 73 65 0a 09 20 20 20 20 |)) {.#el|se.. |
|00006330| 09 69 66 28 65 64 69 74 | 66 6f 72 6d 2d 3e 52 75 |.if(edit|form->Ru|
|00006340| 6e 46 6f 72 6d 28 29 29 | 20 7b 0a 23 65 6e 64 69 |nForm())| {.#endi|
|00006350| 66 0a 09 20 20 20 20 09 | 09 69 66 20 28 54 65 72 |f.. .|.if (Ter|
|00006360| 6d 2d 3e 59 6f 72 4e 70 | 28 32 30 2c 30 2c 22 43 |m->YorNp|(20,0,"C|
|00006370| 61 72 64 20 6d 6f 64 69 | 66 69 65 64 20 2d 20 73 |ard modi|fied - s|
|00006380| 61 76 65 20 69 74 3f 22 | 29 29 20 0a 23 69 66 64 |ave it?"|)) .#ifd|
|00006390| 65 66 20 49 4c 4c 45 47 | 41 4c 5f 49 4e 53 54 52 |ef ILLEG|AL_INSTR|
|000063a0| 0a 09 20 20 20 20 09 09 | 09 53 61 76 65 43 61 72 |.. ..|.SaveCar|
|000063b0| 64 28 65 64 69 74 66 6f | 72 6d 29 3b 0a 23 65 6c |d(editfo|rm);.#el|
|000063c0| 73 65 0a 09 20 20 20 20 | 09 09 09 53 61 76 65 43 |se.. |...SaveC|
|000063d0| 61 72 64 28 2a 65 64 69 | 74 66 6f 72 6d 29 3b 0a |ard(*edi|tform);.|
|000063e0| 23 65 6e 64 69 66 0a 09 | 20 20 20 20 09 7d 0a 09 |#endif..| .}..|
|000063f0| 7d 0a 23 69 66 6e 64 65 | 66 20 49 4c 4c 45 47 41 |}.#ifnde|f ILLEGA|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.